Eigen-unsupported 3.4.90
Main Page
Related Pages
Modules
Classes
Class List
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
x
Enumerations
Enumerator
a
b
c
d
f
g
i
l
m
n
o
p
r
s
t
u
v
Related Functions
Files
File List
File Members
All
a
b
c
d
e
f
g
h
k
m
n
o
r
s
t
Functions
Typedefs
Macros
a
c
e
g
h
k
n
r
s
t
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
unsupported
Eigen
src
NonLinearOptimization
r1mpyq.h
Go to the documentation of this file.
1
#include "
./InternalHeaderCheck.h
"
2
3
namespace
Eigen
{
4
5
namespace
internal
{
6
7
// TODO : move this to GivensQR once there's such a thing in Eigen
8
9
template
<
typename
Scalar>
10
void
r1mpyq
(
DenseIndex
m,
DenseIndex
n, Scalar *a,
const
std::vector<
JacobiRotation<Scalar>
> &v_givens,
const
std::vector<
JacobiRotation<Scalar>
> &w_givens)
11
{
12
typedef
DenseIndex
Index
;
13
14
/* apply the first set of givens rotations to a. */
15
for
(
Index
j
=
n
-2;
j
>=0; --
j
)
16
for
(
Index
i
= 0;
i
<
m
; ++
i
) {
17
Scalar temp = v_givens[
j
].c() *
a
[
i
+
m
*
j
] - v_givens[
j
].s() *
a
[
i
+
m
*(
n
-1)];
18
a
[
i
+
m
*(
n
-1)] = v_givens[
j
].s() *
a
[
i
+
m
*
j
] + v_givens[
j
].c() *
a
[
i
+
m
*(
n
-1)];
19
a
[
i
+
m
*
j
] = temp;
20
}
21
/* apply the second set of givens rotations to a. */
22
for
(
Index
j
= 0;
j
<
n
-1; ++
j
)
23
for
(
Index
i
= 0;
i
<
m
; ++
i
) {
24
Scalar temp = w_givens[
j
].c() *
a
[
i
+
m
*
j
] + w_givens[
j
].s() *
a
[
i
+
m
*(
n
-1)];
25
a
[
i
+
m
*(
n
-1)] = -w_givens[
j
].s() *
a
[
i
+
m
*
j
] + w_givens[
j
].c() *
a
[
i
+
m
*(
n
-1)];
26
a
[
i
+
m
*
j
] = temp;
27
}
28
}
29
30
}
// end namespace internal
31
32
}
// end namespace Eigen
m
Matrix3f m
a
ArrayXXi a
n
int n
i
int i
Eigen::JacobiRotation
Eigen::internal::r1mpyq
void r1mpyq(DenseIndex m, DenseIndex n, Scalar *a, const std::vector< JacobiRotation< Scalar > > &v_givens, const std::vector< JacobiRotation< Scalar > > &w_givens)
Definition:
r1mpyq.h:10
Eigen
: TensorContractionSycl.h, provides various tensor contraction kernel for SYCL backend
Eigen::Index
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
Eigen::DenseIndex
EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex
internal
InternalHeaderCheck.h
j
std::ptrdiff_t j
Code