MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / svd

Function svd

src/api/c/svd.cpp:30–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28
29template<typename T>
30static inline void svd(af_array *s, af_array *u, af_array *vt,
31 const af_array in) {
32 const ArrayInfo &info = getInfo(in); // ArrayInfo is the base class which
33 dim4 dims = info.dims();
34 int M = dims[0];
35 int N = dims[1];
36
37 using Tr = typename dtype_traits<T>::base_type;
38
39 // Allocate output arrays
40 Array<Tr> sA = createEmptyArray<Tr>(dim4(min(M, N)));
41 Array<T> uA = createEmptyArray<T>(dim4(M, M));
42 Array<T> vtA = createEmptyArray<T>(dim4(N, N));
43
44 svd<T, Tr>(sA, uA, vtA, getArray<T>(in));
45
46 *s = getHandle(sA);
47 *u = getHandle(uA);
48 *vt = getHandle(vtA);
49}
50
51template<typename T>
52static inline void svdInPlace(af_array *s, af_array *u, af_array *vt,

Callers 1

mainFunction · 0.50

Calls 4

getHandleFunction · 0.70
dim4Class · 0.50
minFunction · 0.50
dimsMethod · 0.45

Tested by

no test coverage detected