.. _onemkl_blas_rotg: rotg ==== Computes the parameters for a Givens rotation. .. _onemkl_blas_rotg_description: .. rubric:: Description Given the Cartesian coordinates ``(a, b)`` of a point, the ``rotg`` routines return the parameters ``c``, ``s``, ``r``, and ``z`` associated with the Givens rotation. The parameters ``c`` and ``s`` define a unitary matrix such that: .. math:: \begin{bmatrix}c & s \\ -s & c\end{bmatrix}. \begin{bmatrix}a \\ b\end{bmatrix} =\begin{bmatrix}r \\ 0\end{bmatrix} The parameter ``z`` is defined such that if \|\ ``a``\ \| > \|\ ``b``\ \|, ``z`` is ``s``; otherwise if ``c`` is not 0 ``z`` is 1/``c``; otherwise ``z`` is 1. ``rotg`` supports the following precisions. .. list-table:: :header-rows: 1 * - T - T_res * - ``float`` - ``float`` * - ``double`` - ``double`` * - ``std::complex`` - ``float`` * - ``std::complex`` - ``double`` .. _onemkl_blas_rotg_buffer: rotg (Buffer Version) --------------------- .. rubric:: Syntax .. code-block:: cpp namespace oneapi::mkl::blas::column_major { void rotg(sycl::queue &queue, sycl::buffer &a, sycl::buffer &b, sycl::buffer &c, sycl::buffer &s) } .. code-block:: cpp namespace oneapi::mkl::blas::row_major { void rotg(sycl::queue &queue, sycl::buffer &a, sycl::buffer &b, sycl::buffer &c, sycl::buffer &s) } .. container:: section .. rubric:: Input Parameters queue The queue where the routine should be executed a Buffer holding the ``x``-coordinate of the point. b Buffer holding the ``y``-coordinate of the point. .. container:: section .. rubric:: Output Parameters a Buffer holding the parameter ``r`` associated with the Givens rotation. b Buffer holding the parameter ``z`` associated with the Givens rotation. c Buffer holding the parameter ``c`` associated with the Givens rotation. s Buffer holding the parameter ``s`` associated with the Givens rotation. .. _onemkl_blas_rotg_usm: rotg (USM Version) ------------------ .. rubric:: Syntax .. code-block:: cpp namespace oneapi::mkl::blas::column_major { sycl::event rotg(sycl::queue &queue, T *a, T *b, T_real *c, T *s, const std::vector &dependencies = {}) } .. code-block:: cpp namespace oneapi::mkl::blas::row_major { sycl::event rotg(sycl::queue &queue, T *a, T *b, T_real *c, T *s, const std::vector &dependencies = {}) } .. container:: section .. rubric:: Input Parameters queue The queue where the routine should be executed a Pointer to the ``x``-coordinate of the point. b Pointer to the ``y``-coordinate of the point. dependencies List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies. .. container:: section .. rubric:: Output Parameters a Pointer to the parameter ``r`` associated with the Givens rotation. b Pointer to the parameter ``z`` associated with the Givens rotation. c Pointer to the parameter ``c`` associated with the Givens rotation. s Pointer to the parameter ``s`` associated with the Givens rotation. .. container:: section .. rubric:: Return Values Output event to wait on to ensure computation is complete. **Parent topic:** :ref:`blas-level-1-routines`