nk
1.0.0
C++ Numerical Computing Runtime
Toggle main menu visibility
Loading...
Searching...
No Matches
svd_sketch.hpp
Go to the documentation of this file.
1
3
// toolboxes/linalg/include/nk/linalg/svd_sketch.hpp
4
//
5
// svdsketch & svdappend: Randomized and Incremental SVD.
6
7
#pragma once
8
9
#include <memory_resource>
10
#include <tuple>
11
#include <nk/value/value.hpp>
12
13
namespace
nk::linalg {
14
17
18
21
std::tuple<Value, Value, Value>
svdsketch
(
const
Value
&A,
double
tol = 1e-6,
22
std::pmr::memory_resource *mr =
nullptr
);
23
26
std::tuple<Value, Value, Value>
svdappend
(
const
Value
&U,
const
Value
&S,
const
Value
&V,
27
const
Value
&A_new,
28
std::pmr::memory_resource *mr =
nullptr
);
29
30
32
}
// namespace nk::linalg
nk::Value
Core MATLAB-compatible multidimensional array and scalar value type.
Definition
value.hpp:61
nk::linalg::svdsketch
std::tuple< Value, Value, Value > svdsketch(const Value &A, double tol=1e-6, std::pmr::memory_resource *mr=nullptr)
Randomized low-rank SVD approximation ([U, S, V] = svdsketch(A, tol)).
nk::linalg::svdappend
std::tuple< Value, Value, Value > svdappend(const Value &U, const Value &S, const Value &V, const Value &A_new, std::pmr::memory_resource *mr=nullptr)
Incremental SVD update ([U, S, V] = svdappend(U, S, V, A_new)).
src
toolboxes
linalg
include
nk
linalg
svd_sketch.hpp
Generated by
1.17.0