nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
schur_convert.hpp
Go to the documentation of this file.
1
3// toolboxes/linalg/include/nk/linalg/schur_convert.hpp
4//
5// Schur form conversions: complex-diagonal ↔ real-block-diagonal.
6
7#pragma once
8
9#include <memory_resource>
10#include <tuple>
11#include <nk/value/value.hpp>
12
13namespace nk::linalg {
14
17
18
30std::tuple<Value, Value>
31cdf2rdf(const Value &V, const Value &D, std::pmr::memory_resource *mr = nullptr);
32
44std::tuple<Value, Value>
45rsf2csf(const Value &UR, const Value &TR, std::pmr::memory_resource *mr = nullptr);
46
47
49} // namespace nk::linalg
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
std::tuple< Value, Value > cdf2rdf(const Value &V, const Value &D, std::pmr::memory_resource *mr=nullptr)
Complex-diagonal → real-block-diagonal Schur form ([VR, DR] = cdf2rdf(V, D)).
std::tuple< Value, Value > rsf2csf(const Value &UR, const Value &TR, std::pmr::memory_resource *mr=nullptr)
Real Schur → complex Schur form ([U, T] = rsf2csf(UR, TR)).