.. _orgtr: orgtr ===== Generates the real orthogonal matrix Q determined by :ref:`sytrd `. This routine belongs to the ``oneapi::mkl::lapack`` namespace. .. contents:: :local: :depth: 1 Description *********** The routine explicitly generates the ``n``-by-``n`` orthogonal matrix ``Q`` formed by :ref:`sytrd` when reducing a real symmetric matrix ``A`` to tridiagonal form: ``A = Q*T*QT``. Use this routine after a call to :ref:`sytrd`. API *** Syntax ------ .. code-block:: cpp namespace oneapi::mkl::lapack { void orgtr(cl::sycl::queue &queue, mkl::uplo uplo, std::int64_t n, cl::sycl::buffer &a, std::int64_t lda, cl::sycl::buffer &tau, cl::sycl::buffer &scratchpad, std::int64_t scratchpad_size) } ``orgtr`` supports the following precisions and devices: .. list-table:: :header-rows: 1 * - T - Devices supported * - ``float`` - Host and CPU * - ``double`` - Host and CPU Input Parameters ---------------- queue Device queue where calculations will be performed. uplo Must be uplo::upper or uplo::lower. Uses the same uplo as supplied to the :ref:`sytrd` function n The order of matrix ``Q`` (``0≤n``). a The buffer ``a`` returned by the :ref:`sytrd` function. The second dimension of ``a`` must be at least ``max(1, n)``. lda The leading dimension of ``a`` (``n≤lda``). scratchpad Buffer holding scratchpad memory to be used by the routine for storing intermediate results. scratchpad_size Size of scratchpad memory as a number of floating point elements of type ``T``. Size should not be less than the value returned by the :ref:`orgtr_scratchpad_size` function. Output Parameters ----------------- a Overwritten by the orthogonal matrix ``Q``. Exceptions ---------- .. tabularcolumns:: |\Y{0.3}|\Y{0.7}| .. list-table:: :header-rows: 1 * - Exception - Description * - ``mkl::lapack::exception`` - This exception is thrown when problems occur during calculations. You can obtain the info code of the problem using the info() method of the exception object: If ``info = -i``, the ``i``-th parameter had an illegal value. If ``info`` is equal to the value passed as scratchpad size, and detail() returns non-zero, then the passed scratchpad has an insufficient size, and the required size should not be less than the value returned by the detail() method of the exception object.