A newer version of this document is available. Customers should click here to go to the newest version.
                        
                        
                            
                            
                                What's New
                            
                        
                            
                            
                                Introduction to the Intel® oneAPI Math Kernel Library (oneMKL) BLAS and LAPACK with DPC++
                            
                        
                            
                            
                                Overview of Intel® oneMKL BLAS Routines for Data Parallel C++
                            
                        
                            
                            
                                Overview of Intel® oneAPI Math Kernel Library (oneMKL) Sparse BLAS for DPC++
                            
                        
                            
                            
                                Overview of Intel® oneMKL LAPACK Routines for Data Parallel C++
                            
                        
                            
                            
                                Data Types
                            
                        
                            
                            
                                Matrix Storage
                            
                        
                            
                            
                                Error Handling
                            
                        
                            
                                BLAS Routines
                            
                            
                        
                            
                                Sparse BLAS Routines
                            
                            
                        
                            
                                LAPACK Routines
                            
                            
                        
                            
                                Vector Mathematical Functions
                            
                            
                        
                            
                                Random Number Generators
                            
                            
                        
                            
                                Summary Statistics
                            
                            
                        
                            
                                Fourier Transform Functions
                            
                            
                        
                            
                                Data Fitting
                            
                            
                        
                            
                            
                                Bibliography
                            
                        
                            
                                Appendix A: oneMKL Functionality
                            
                            
                        
                            
                            
                                Notices and Disclaimers
                            
                        
                    
                
                                    
                                    
                                        
                                        
                                            Sparse BLAS Matrix Handle Contract between User and Library
                                        
                                        
                                    
                                        
                                        
                                            Sparse BLAS Supported Data and Integer Types
                                        
                                        
                                    
                                        
                                        
                                            Sparse Storage Formats
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::init_matrix_handle
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::release_matrix_handle
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::set_csr_data
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::set_matrix_property
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::optimize_gemv
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::optimize_trmv
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::optimize_trsv
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::gemv
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::gemvdot
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::symv
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::trmv
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::trsv
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::gemm
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::init_matmat_descr
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::set_matmat_data
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::get_matmat_data
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::release_matmat_descr
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::matmat
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::omatcopy
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::sort_matrix
                                        
                                        
                                    
                                        
                                        
                                            oneapi::mkl::sparse::update_diagonal_values
                                        
                                        
                                    
                                
                            
                                    
                                    
                                        
                                        
                                            gebrd
                                        
                                        
                                    
                                        
                                        
                                            gebrd (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            gebrd_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            gels_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            gels_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            gels_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            geqrf
                                        
                                        
                                    
                                        
                                        
                                            geqrf (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            geqrf_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            geqrf_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            geqrf_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            geqrf_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            geqrf_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            geqrf_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            gerqf
                                        
                                        
                                    
                                        
                                        
                                            gerqf (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            gerqf_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            gesv (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            gesv_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            gesvd
                                        
                                        
                                    
                                        
                                        
                                            gesvd (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            gesvd_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            getrf
                                        
                                        
                                    
                                        
                                        
                                            getrf (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            getrf_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrf_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            getrf_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrf_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            getrf_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrf_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            getrfnp_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrfnp_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            getrfnp_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrfnp_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            getrfnp_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getri
                                        
                                        
                                    
                                        
                                        
                                            getri (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_batch (Out-of-place, Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_batch (Out-of-place, USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getri_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            getrs
                                        
                                        
                                    
                                        
                                        
                                            getrs (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            getrs_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrs_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            getrs_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrs_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            getrs_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrs_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            getrsnp_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrsnp_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            getrsnp_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            heevd
                                        
                                        
                                    
                                        
                                        
                                            heevd (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            heevd_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            hegvd
                                        
                                        
                                    
                                        
                                        
                                            hegvd (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            hegvd_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            hetrd
                                        
                                        
                                    
                                        
                                        
                                            hetrd (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            hetrd_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            hetrf
                                        
                                        
                                    
                                        
                                        
                                            hetrf (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            hetrf_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            orgbr
                                        
                                        
                                    
                                        
                                        
                                            orgbr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            orgbr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            orgqr
                                        
                                        
                                    
                                        
                                        
                                            orgqr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            orgqr_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            orgqr_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            orgqr_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            orgqr_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            orgqr_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            orgqr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            orgtr
                                        
                                        
                                    
                                        
                                        
                                            orgtr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            orgtr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            ormqr
                                        
                                        
                                    
                                        
                                        
                                            ormqr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            ormqr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            ormrq
                                        
                                        
                                    
                                        
                                        
                                            ormrq (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            ormrq_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            ormtr
                                        
                                        
                                    
                                        
                                        
                                            ormtr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            ormtr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            potrf
                                        
                                        
                                    
                                        
                                        
                                            potrf (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            potrf_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            potrf_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            potrf_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            potrf_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            potrf_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            potrf_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            potri
                                        
                                        
                                    
                                        
                                        
                                            potri (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            potri_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            potrs
                                        
                                        
                                    
                                        
                                        
                                            potrs (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            potrs_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            potrs_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            potrs_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            potrs_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            potrs_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            potrs_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            syevd
                                        
                                        
                                    
                                        
                                        
                                            syevd (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            syevd_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            sygvd
                                        
                                        
                                    
                                        
                                        
                                            sygvd (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            sygvd_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            sytrd
                                        
                                        
                                    
                                        
                                        
                                            sytrd (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            sytrd_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            sytrf
                                        
                                        
                                    
                                        
                                        
                                            sytrf (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            sytrf_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            trtri (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            trtri_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            trtrs
                                        
                                        
                                    
                                        
                                        
                                            trtrs (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            trtrs_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            ungbr
                                        
                                        
                                    
                                        
                                        
                                            ungbr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            ungbr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            ungqr
                                        
                                        
                                    
                                        
                                        
                                            ungqr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            ungqr_batch (Buffer Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            ungqr_batch (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            ungqr_batch (USM Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            ungqr_batch_scratchpad_size (Group Version)
                                        
                                        
                                    
                                        
                                        
                                            ungqr_batch_scratchpad_size (Strided Version)
                                        
                                        
                                    
                                        
                                        
                                            ungqr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            ungtr
                                        
                                        
                                    
                                        
                                        
                                            ungtr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            ungtr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            unmqr
                                        
                                        
                                    
                                        
                                        
                                            unmqr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            unmqr_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            unmrq
                                        
                                        
                                    
                                        
                                        
                                            unmrq (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            unmrq_scratchpad_size
                                        
                                        
                                    
                                        
                                        
                                            unmtr
                                        
                                        
                                    
                                        
                                        
                                            unmtr (USM Version)
                                        
                                        
                                    
                                        
                                        
                                            unmtr_scratchpad_size
                                        
                                        
                                    
                                
                            
                                                            
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::mrg32k3a
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::philox4x32x10
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::mcg31m1
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::mcg59
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::r250
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::wichmann_hill
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::mt19937
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::sfmt19937
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::mt2203
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::ars5
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::sobol
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::niederreiter
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::nondeterministic
                                                                
                                                                
                                                            
                                                        
                                                    
                                                            
                                                            
                                                                
                                                                
                                                                    Distributions Template Parameter Method
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::uniform (Continuous)
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::gaussian
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::exponential
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::laplace
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::weibull
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::cauchy
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::rayleigh
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::lognormal
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::gumbel
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::gamma
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::beta
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::chi_square
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::gaussian_mv
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::uniform (Discrete)
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::uniform_bits
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::bits
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::bernoulli
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::geometric
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::binomial
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::hypergeometric
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::poisson
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::poisson_v
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::negative_binomial
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::multinomial
                                                                
                                                                
                                                            
                                                        
                                                    
                                                            
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::uniform (Continuous)
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::gaussian
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::lognormal
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::exponential
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::uniform (Discrete)
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::bits
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::uniform_bits
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::poisson
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    oneapi::mkl::rng::device::bernoulli
                                                                
                                                                
                                                            
                                                        
                                                    
                                                
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::raw_sum
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::central_sum
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::central_sum with User-provided Mean
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::raw_moment
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::central_moment
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::central_moment with User-provided Mean
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::mean
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::variation
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::variation with User-provided Mean
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::skewness
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::skewness with User-provided Mean
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::kurtosis
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::kurtosis with User-provided Mean
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::min
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::max
                                                    
                                                    
                                                
                                                    
                                                    
                                                        oneapi::mkl::stats::min_max
                                                    
                                                    
                                                
                                            
                                        
                                    
                                    
                                        
                                        
                                            descriptor<precision, domain>
                                        
                                        
                                    
                                        
                                        
                                            descriptor<precision, domain>::set_value
                                        
                                        
                                    
                                        
                                        
                                            descriptor<precision, domain>::get_value
                                        
                                        
                                    
                                        
                                        
                                            descriptor<precision, domain>::commit
                                        
                                        
                                    
                                        
                                        
                                            compute_forward<typename descriptor_type, typename data_type>
                                        
                                        
                                    
                                        
                                        
                                            compute_backward<typename descriptor_type, typename data_type>
                                        
                                        
                                    
                                        
                                        
                                            User-Allocated Workspaces
                                        
                                        
                                    
                                
                            oneMKL Summary Statistics Usage Model
Description
A typical algorithm for random number generators is as follows:
Create and initialize the object for the dataset.
Call the summary statistics routine to calculate the appropriate estimate.
The following example demonstrates how to calculate mean values for a 3-dimentional dataset filled with random numbers. For dataset creation, the make_dataset helper function is used.
Example of Summary Statistics Usage
Buffer API
#include <iostream>
#include <vector>
#include “CL/sycl.hpp”
#include “oneapi/mkl/stats.hpp”
int main() {
    sycl::queue queue;
    const size_t n_observations = 1000;
    const size_t n_dims = 3;
    std::vector<float> x(n_observations * n_dims);
    // fill x storage with random numbers
    for(int i = 0; i < n_dims, i++) {
        for(int j = 0; j < n_observations; j++) {
            x[j + i * n_observations] = float(std::rand()) / float(RAND_MAX);
        }
    }
    //create buffer for dataset
    sycl::buffer<float, 1> x_buf(x.data(), x.size());
    // create buffer for mean values
    sycl::buffer<float, 1> mean_buf(n_dims);
    // create mkl::stats::dataset
    auto dataset = oneapi::mkl::stats::make_dataset<mkl::stats::layout::row_major>(n_dims, n_observations, x_buf);
    oneapi::mkl::stats::mean(queue, dataset, mean_buf);
    // create host accessor for mean_buf to print results
    auto acc = mean_buf.template get_access<sycl::access::mode::read>();
    for(int i = 0; i < n_dims; i++) {
        std::cout << “Mean value for dimension ” << i << “: ”<< acc[i]<<
    std::endl;
    }
    return 0;
} 
    
   USM API
#include <iostream>
#include <vector>
#include “CL/sycl.hpp”
#include “oneapi/mkl/stats.hpp”
int main() {
    sycl::queue queue;
    const size_t n_observations = 1000;
    const size_t n_dims = 3;
    sycl::usm_allocator<float, sycl::usm::alloc::shared> allocator(queue);
    std::vector<float, decltype(allocator)> x(n_observations * n_dims, allocator);
    // fill x storage with random numbers
    for(int i = 0; i < n_dims, i++) {
        for(int j = 0; j < n_observations; j++) {
            x[j + i * n_observations] = float(std::rand()) / float(RAND_MAX);
        }
    }
    std::vector<float, decltype(allocator)> mean_buf(n_dims, allocator);
    // create mkl::stats::dataset
    auto dataset = oneapi::mkl::stats::make_dataset<mkl::stats::layout::row_major>(n_dims,  n_observations, x);
    sycl::event event = oneapi::mkl::stats::mean(queue, dataset, mean);
    event.wait();
   for(int i = 0; i < n_dims; i++) {
         std::cout << “Mean value for dimension ” << i << “: ”<< mean[i]<<
      std::endl;
   }
   return 0;
} 
   You can also use USM with raw pointers by using the sycl::malloc_shared/malloc_device functions. Additionally, examples that demonstrate usage of summary statistics functionality are available in:
${MKL}/examples/dpcpp/stats/source