Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace 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
z
Functions
_
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
z
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Enumerations
a
c
d
e
f
g
i
k
l
m
n
p
q
r
s
t
u
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
z
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
z
~
Functions
!
_
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
z
~
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
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
f
k
l
m
n
o
p
r
s
t
v
z
Enumerator
_
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
z
Related Functions
:
a
b
c
d
e
g
h
i
l
m
n
o
p
r
s
t
u
v
Files
File List
File 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
z
Functions
_
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
z
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
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
x
z
Enumerations
Enumerator
b
c
e
f
g
i
l
m
n
o
p
r
s
t
u
v
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Examples
gtsam
3rdparty
Eigen
blas
PackedSelfadjointProduct.h
Go to the documentation of this file.
1
// This file is part of Eigen, a lightweight C++ template library
2
// for linear algebra.
3
//
4
// Copyright (C) 2012 Chen-Pang He <jdh8@ms63.hinet.net>
5
//
6
// This Source Code Form is subject to the terms of the Mozilla
7
// Public License v. 2.0. If a copy of the MPL was not distributed
8
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
10
#ifndef EIGEN_SELFADJOINT_PACKED_PRODUCT_H
11
#define EIGEN_SELFADJOINT_PACKED_PRODUCT_H
12
13
namespace
internal
{
14
15
/* Optimized matrix += alpha * uv'
16
* The matrix is in packed form.
17
*/
18
template
<
typename
Scalar,
typename
Index,
int
StorageOrder,
int
UpLo,
bool
ConjLhs,
bool
ConjRhs>
19
struct
selfadjoint_packed_rank1_update
;
20
21
template
<
typename
Scalar,
typename
Index,
int
UpLo,
bool
ConjLhs,
bool
ConjRhs>
22
struct
selfadjoint_packed_rank1_update
<
Scalar
,
Index
,
ColMajor
,UpLo,ConjLhs,ConjRhs>
23
{
24
typedef
typename
NumTraits<Scalar>::Real
RealScalar
;
25
static
void
run
(
Index
size
,
Scalar
*
mat
,
const
Scalar
* vec,
RealScalar
alpha
)
26
{
27
typedef
Map<const Matrix<Scalar,Dynamic,1> > OtherMap;
28
typedef
typename
conj_expr_if<ConjLhs,OtherMap>::type
ConjRhsType;
29
conj_if<ConjRhs> cj;
30
31
for
(
Index
i
=0;
i
<
size
; ++
i
)
32
{
33
Map<Matrix<Scalar,Dynamic,1> >(
mat
, UpLo==
Lower
?
size
-
i
: (
i
+1)) +=
alpha
* cj(vec[
i
]) * ConjRhsType(OtherMap(vec+(UpLo==
Lower
?
i
: 0), UpLo==
Lower
?
size
-
i
: (
i
+1)));
34
//FIXME This should be handled outside.
35
mat
[UpLo==
Lower
? 0 :
i
] =
numext::real
(
mat
[UpLo==
Lower
? 0 :
i
]);
36
mat
+= UpLo==
Lower
?
size
-
i
: (
i
+1);
37
}
38
}
39
};
40
41
template
<
typename
Scalar,
typename
Index,
int
UpLo,
bool
ConjLhs,
bool
ConjRhs>
42
struct
selfadjoint_packed_rank1_update
<
Scalar
,
Index
,
RowMajor
,UpLo,ConjLhs,ConjRhs>
43
{
44
typedef
typename
NumTraits<Scalar>::Real
RealScalar
;
45
static
void
run
(
Index
size
,
Scalar
*
mat
,
const
Scalar
* vec,
RealScalar
alpha
)
46
{
47
selfadjoint_packed_rank1_update<Scalar,Index,ColMajor,UpLo==Lower?Upper:Lower,ConjRhs,ConjLhs>::run
(
size
,
mat
,vec,
alpha
);
48
}
49
};
50
51
}
// end namespace internal
52
53
#endif // EIGEN_SELFADJOINT_PACKED_PRODUCT_H
internal::selfadjoint_packed_rank1_update
Definition:
PackedSelfadjointProduct.h:19
gtsam.examples.DogLegOptimizerExample.type
type
Definition:
DogLegOptimizerExample.py:111
alpha
RealScalar alpha
Definition:
level1_cplx_impl.h:147
real
float real
Definition:
datatypes.h:10
internal::selfadjoint_packed_rank1_update< Scalar, Index, RowMajor, UpLo, ConjLhs, ConjRhs >::run
static void run(Index size, Scalar *mat, const Scalar *vec, RealScalar alpha)
Definition:
PackedSelfadjointProduct.h:45
Eigen::RowMajor
@ RowMajor
Definition:
Constants.h:321
mat
MatrixXf mat
Definition:
Tutorial_AdvancedInitialization_CommaTemporary.cpp:1
size
Scalar Scalar int size
Definition:
benchVecAdd.cpp:17
gtsam.examples.DogLegOptimizerExample.run
def run(args)
Definition:
DogLegOptimizerExample.py:21
Eigen::Lower
@ Lower
Definition:
Constants.h:209
internal::selfadjoint_packed_rank1_update< Scalar, Index, RowMajor, UpLo, ConjLhs, ConjRhs >::RealScalar
NumTraits< Scalar >::Real RealScalar
Definition:
PackedSelfadjointProduct.h:44
internal
Definition:
BandTriangularSolver.h:13
Eigen::ColMajor
@ ColMajor
Definition:
Constants.h:319
internal::selfadjoint_packed_rank1_update< Scalar, Index, ColMajor, UpLo, ConjLhs, ConjRhs >::run
static void run(Index size, Scalar *mat, const Scalar *vec, RealScalar alpha)
Definition:
PackedSelfadjointProduct.h:25
i
int i
Definition:
BiCGSTAB_step_by_step.cpp:9
internal::selfadjoint_packed_rank1_update< Scalar, Index, ColMajor, UpLo, ConjLhs, ConjRhs >::RealScalar
NumTraits< Scalar >::Real RealScalar
Definition:
PackedSelfadjointProduct.h:24
Eigen::GenericNumTraits< Scalar >::Real
Scalar Real
Definition:
NumTraits.h:164
Scalar
SCALAR Scalar
Definition:
bench_gemm.cpp:46
Eigen::Index
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition:
Meta.h:74
gtsam
Author(s):
autogenerated on Wed Mar 19 2025 03:02:34