.. _onemkl_blas_asum: asum ==== Computes the sum of magnitudes of the vector elements. Description *********** The ``asum`` routine computes the sum of the magnitudes of elements of a real vector, or the sum of magnitudes of the real and imaginary parts of elements of a complex vector. The operation is defined as: .. math:: \mathrm{result} \leftarrow \sum_{i=1}^n \left( |\mathrm{Re} (X_i)| + |\mathrm{Im}(X_i)| \right) where: - ``x`` is a vector with ``n`` elements ``asum`` supports the following precisions: .. list-table:: :header-rows: 1 * - T - T_res * - ``float`` - ``float`` * - ``double`` - ``double`` * - ``std::complex`` - ``float`` * - ``std::complex`` - ``double`` asum (Buffer Version) ********************* Syntax ------ .. code-block:: cpp namespace oneapi::mkl::blas::column_major { void asum(sycl::queue &queue, std::int64_t n, sycl::buffer &x, std::int64_t incx, sycl::buffer &result) } .. code-block:: cpp namespace oneapi::mkl::blas::row_major { void asum(sycl::queue &queue, std::int64_t n, sycl::buffer &x, std::int64_t incx, sycl::buffer &result) } Input Parameters ---------------- queue The queue where the routine should be executed. n Number of elements in vector ``x``. x Buffer holding input vector ``x``. Size of the buffer must be at least (1 + (``n`` - 1)*abs(``incx``)). See :ref:`matrix-storage` for more details. incx Stride of vector ``x``. Output Parameters ----------------- result Buffer where the scalar result is stored. asum (USM Version) ****************** Syntax ------ .. code-block:: cpp namespace oneapi::mkl::blas::column_major { sycl::event asum(sycl::queue &queue, std::int64_t n, const T *x, std::int64_t incx, T_res *result, const std::vector &dependencies = {}) } .. code-block:: cpp namespace oneapi::mkl::blas::row_major { sycl::event asum(sycl::queue &queue, std::int64_t n, const T *x, std::int64_t incx, T_res *result, const std::vector &dependencies = {}) } Input Parameters ---------------- queue The queue where the routine should be executed. n Number of elements in vector ``x``. x Pointer to input vector ``x``. Size of the array holding vector ``x`` must be least (1 + (``n`` - 1)\*abs(``incx``)). See :ref:`matrix-storage` for more details. incx Stride of vector ``x``. dependencies List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies. Output Parameters ----------------- result Pointer to where the scalar result is stored. Return Values ------------- Output event to wait on to ensure computation is complete.