17#include <memory_resource>
18#include <nk/value/value.hpp>
39std::tuple<Value, Value>
42 std::pmr::memory_resource * mr =
nullptr);
55std::tuple<Value, Value, double>
58 std::pmr::memory_resource * mr =
nullptr);
69std::tuple<Value, Value, double>
72 std::pmr::memory_resource * mr =
nullptr);
87std::tuple<Value, Value, double>
91 std::pmr::memory_resource * mr =
nullptr);
105 std::pmr::memory_resource * mr =
nullptr);
119std::tuple<Value, Value, Value, Value>
122 std::pmr::memory_resource * mr =
nullptr);
133std::tuple<Value, Value>
138 std::pmr::memory_resource * mr =
nullptr);
152std::tuple<Value, Value, double>
154 std::pmr::memory_resource *mr =
nullptr);
163std::tuple<Value, Value, Value, Value>
167 std::pmr::memory_resource * mr =
nullptr);
175std::tuple<Value, Value, Value, Value>
178 std::pmr::memory_resource * mr =
nullptr);
193 std::pmr::memory_resource *mr =
nullptr);
Core MATLAB-compatible multidimensional array and scalar value type.
static const Value Empty
MATLAB-style empty matrix sentinel — a 0×0 DOUBLE value.
Value ss2sos(const Value &A, const Value &B, const Value &C, double D=0.0, std::pmr::memory_resource *mr=nullptr)
State space → second-order sections (sos = ss2sos(A, B, C, D)).
std::tuple< Value, Value, double > ctf2zp(const Value &NUM, const Value &DEN, const Value &SV=Value::Empty, std::pmr::memory_resource *mr=nullptr)
Cascaded transfer function to zero / pole / gain.
std::tuple< Value, Value, double > sos2zp(const Value &sos, double g=1.0, std::pmr::memory_resource *mr=nullptr)
Second-order sections to zero / pole / gain.
Value scaleFilterSections(const Value &CTFNum, const Value &SV, std::pmr::memory_resource *mr=nullptr)
Scale numerator coefficients of a cascaded transfer function.
std::tuple< Value, Value > sos2tf(const Value &sos, double g=1.0, std::pmr::memory_resource *mr=nullptr)
Second-order sections to transfer function.
std::tuple< Value, Value, Value, Value > tf2ss(const Value &b, const Value &a, std::pmr::memory_resource *mr=nullptr)
Transfer function to state space (controllable canonical form).
std::tuple< Value, Value > ss2tf(const Value &A, const Value &B, const Value &C, double D=0.0, std::pmr::memory_resource *mr=nullptr)
State space to transfer function (SISO only).
std::tuple< Value, Value, Value, Value > zp2ss(const Value &z, const Value &p, double k, std::pmr::memory_resource *mr=nullptr)
Zero / pole / gain to state space (via zp2tf then tf2ss).
std::tuple< Value, Value, double > ss2zp(const Value &A, const Value &B, const Value &C, double D=0.0, std::pmr::memory_resource *mr=nullptr)
State space → zero / pole / gain ([z, p, k] = ss2zp(A, B, C, D)).
std::tuple< Value, Value, Value, Value > sos2ss(const Value &sos, double g=1.0, std::pmr::memory_resource *mr=nullptr)
Second-order sections to state space (via sos2tf then tf2ss).
std::tuple< Value, Value, double > tf2zpk(const Value &b, const Value &a, std::pmr::memory_resource *mr=nullptr)
Transfer function to zero / pole / gain.