KokkosBlas::rot ############### Defined in header: :code:`KokkosBlas1_rot.hpp` .. code:: c++ template void rot( execution_space const& space, VectorView const& X, VectorView const& Y, MagnitudeView const& c, ScalarView const& s); template void rot( VectorView const& X, VectorView const& Y, MagnitudeView const& c, ScalarView const& s); Applies plane rotation ``(c, s)`` to vector pair ``X, Y``. This can be used to apply a Givens rotation to ``X`` and ``Y``, if the coefficients ``c`` and ``s`` were previously computed by :doc:`KokkosBlas::rotg(a, b, c, s) `. 1. Replaces the values of ``X`` and ``Y`` with ``c*X + s*Y`` and ``c*Y - s*X`` respectively, using the provided ``space`` instance. 2. Replaces the values of ``X`` and ``Y`` with ``c*X + s*Y`` and ``c*Y - s*X`` respectively, using the default instance of type ``typename VectorView::execution_space``. The function will throw a runtime exception if ``X.extent(0) != Y.extent(0)`` Parameters ========== :space: execution space instance :X, Y: Pair of vectors to rotate :c, s: cosine and sine of the angle rotation. Type Requirements ----------------- - `execution_space` must be a Kokkos `execution space `_ - `VectorView` must be a Kokkos `View `_ of rank 1 that satisfies: - ``Kokkos::SpaceAccessibility::accessible == true`` - ``std::is_same_v == true`` - `MagnitudeView` must be a Kokkos `View `_ of rank 0 that satisfies: - ``Kokkos::SpaceAccessibility::accessible == true`` - ``!KokkosKernels::ArithTraits::is_complex`` - `ScalarView` must be a Kokkos `View `_ of rank 0 that satisfies: - ``Kokkos::SpaceAccessibility::accessible == true`` Example ======= This example shows how to eliminate an entry using a Givens rotation. It uses :doc:`rotg ` to compute the rotation coefficients and :code:`rot` to apply the rotation. .. literalinclude:: ../../../../example/wiki/blas/KokkosBlas1_wiki_rotg_rot.cpp :language: c++