-
Notifications
You must be signed in to change notification settings - Fork 550
Expand file tree
/
Copy pathlapack.cpp
More file actions
95 lines (78 loc) · 2.77 KB
/
lapack.cpp
File metadata and controls
95 lines (78 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*******************************************************
* Copyright (c) 2015, ArrayFire
* All rights reserved.
*
* This file is distributed under 3-clause BSD license.
* The complete license agreement can be obtained at:
* http://arrayfire.com/licenses/BSD-3-Clause
********************************************************/
#include <af/array.h>
#include <af/lapack.h>
#include "symbol_manager.hpp"
af_err af_svd(af_array *u, af_array *s, af_array *vt, const af_array in) {
CHECK_ARRAYS(in);
CALL(af_svd, u, s, vt, in);
}
af_err af_svd_inplace(af_array *u, af_array *s, af_array *vt, af_array in) {
CHECK_ARRAYS(in);
CALL(af_svd_inplace, u, s, vt, in);
}
af_err af_lu(af_array *lower, af_array *upper, af_array *pivot,
const af_array in) {
CHECK_ARRAYS(in);
CALL(af_lu, lower, upper, pivot, in);
}
af_err af_lu_inplace(af_array *pivot, af_array in, const bool is_lapack_piv) {
CHECK_ARRAYS(in);
CALL(af_lu_inplace, pivot, in, is_lapack_piv);
}
af_err af_qr(af_array *q, af_array *r, af_array *tau, const af_array in) {
CHECK_ARRAYS(in);
CALL(af_qr, q, r, tau, in);
}
af_err af_qr_inplace(af_array *tau, af_array in) {
CHECK_ARRAYS(in);
CALL(af_qr_inplace, tau, in);
}
af_err af_cholesky(af_array *out, int *info, const af_array in,
const bool is_upper) {
CHECK_ARRAYS(in);
CALL(af_cholesky, out, info, in, is_upper);
}
af_err af_cholesky_inplace(int *info, af_array in, const bool is_upper) {
CHECK_ARRAYS(in);
CALL(af_cholesky_inplace, info, in, is_upper);
}
af_err af_solve(af_array *x, const af_array a, const af_array b,
const af_mat_prop options) {
CHECK_ARRAYS(a, b);
CALL(af_solve, x, a, b, options);
}
af_err af_solve_lu(af_array *x, const af_array a, const af_array piv,
const af_array b, const af_mat_prop options) {
CHECK_ARRAYS(a, piv, b);
CALL(af_solve_lu, x, a, piv, b, options);
}
af_err af_inverse(af_array *out, const af_array in, const af_mat_prop options) {
CHECK_ARRAYS(in);
CALL(af_inverse, out, in, options);
}
af_err af_pinverse(af_array *out, const af_array in, const double tol,
const af_mat_prop options) {
CHECK_ARRAYS(in);
CALL(af_pinverse, out, in, tol, options);
}
af_err af_rank(unsigned *rank, const af_array in, const double tol) {
CHECK_ARRAYS(in);
CALL(af_rank, rank, in, tol);
}
af_err af_det(double *det_real, double *det_imag, const af_array in) {
CHECK_ARRAYS(in);
CALL(af_det, det_real, det_imag, in);
}
af_err af_norm(double *out, const af_array in, const af_norm_type type,
const double p, const double q) {
CHECK_ARRAYS(in);
CALL(af_norm, out, in, type, p, q);
}
af_err af_is_lapack_available(bool *out) { CALL(af_is_lapack_available, out); }