Skip to content

num::transpose

Defined in header <linear/matrix_utils.hpp>, <linear/solve.hpp>, <linear/sparse/sparse.hpp>

template <class M>
requires repr::csr<M>
spmat transpose(const M &A);  // (1)

template <class F>
requires requires(const F &factor, const vec<real> &b, vec<real> &x) {
  solve_transpose(factor, b, x);
}
detail::transposed_factor<F> transpose(const F &factor);  // (2)

template <class F>
requires(!std::is_lvalue_reference_v<F> &&
         requires(const std::remove_reference_t<F> &factor, const vec<real> &b,
                  vec<real> &x) { solve_transpose(factor, b, x); })
detail::transposed_factor<std::remove_reference_t<F>> transpose(F &&);  // (3)

template <class F>
const F &transpose(detail::transposed_factor<F> factor);  // (4)

template <class M>
requires repr::dense_row_major<M>
mat<real> transpose(const M &matrix);  // (5)

(1) Undocumented.

(2) View a factorization of \(A\) as one of \(A^T\), so solve covers both.

The view stores only a reference: it neither transposes nor copies the factors, and it must not outlive them.

(3) Undocumented.

(4) Undocumented.

(5) Return the transpose of a dense matrix.