nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
linalg/include/nk/linalg/predicates.hpp
Go to the documentation of this file.
1
3// toolboxes/linalg/include/nk/linalg/predicates.hpp
4//
5// Matrix-structure predicates and bandwidth queries. Migrated from
6// toolboxes/builtin/src/language/arrays/predicates.cpp.
7
8#pragma once
9
10#include <memory_resource>
11#include <string>
12#include <utility>
13#include <nk/value/value.hpp>
14
15namespace nk::linalg {
16
19
20
25Value isbanded(const Value &A, long lower, long upper, std::pmr::memory_resource *mr = nullptr);
26
28Value isdiag(const Value &A, std::pmr::memory_resource *mr = nullptr);
29
31Value istril(const Value &A, std::pmr::memory_resource *mr = nullptr);
32
34Value istriu(const Value &A, std::pmr::memory_resource *mr = nullptr);
35
40Value issymmetric(const Value &A, bool skew = false, std::pmr::memory_resource *mr = nullptr);
41
43Value ishermitian(const Value &A, bool skew = false, std::pmr::memory_resource *mr = nullptr);
44
46std::pair<Value, Value>
47bandwidth(const Value &A, std::pmr::memory_resource *mr = nullptr);
48
50Value bandwidthOpt(const Value &A, const std::string &which, std::pmr::memory_resource *mr = nullptr);
51
52
54} // namespace nk::linalg
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value istriu(const Value &A, std::pmr::memory_resource *mr=nullptr)
Upper-triangular structure (tf = istriu(A)).
Value ishermitian(const Value &A, bool skew=false, std::pmr::memory_resource *mr=nullptr)
Hermitian test (tf = ishermitian(A, skew)).
Value isbanded(const Value &A, long lower, long upper, std::pmr::memory_resource *mr=nullptr)
Banded structure test (tf = isbanded(A, lower, upper)).
Value istril(const Value &A, std::pmr::memory_resource *mr=nullptr)
Lower-triangular structure (tf = istril(A)).
Value issymmetric(const Value &A, bool skew=false, std::pmr::memory_resource *mr=nullptr)
Symmetry test (tf = issymmetric(A, skew)).
std::pair< Value, Value > bandwidth(const Value &A, std::pmr::memory_resource *mr=nullptr)
Bandwidth pair ([lower, upper] = bandwidth(A)).
Value bandwidthOpt(const Value &A, const std::string &which, std::pmr::memory_resource *mr=nullptr)
Single-output bandwidth selector (x = bandwidth(A, which)).
Value isdiag(const Value &A, std::pmr::memory_resource *mr=nullptr)
Diagonal structure (tf = isdiag(A)). True iff isbanded(A, 0, 0).