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
|
Use runtime SVD computation options for compatibility with system Eigen 3.4.
The requested full/thin U and V options are unchanged.
--- a/intern/libmv/libmv/multiview/euclidean_resection.cc
+++ b/intern/libmv/libmv/multiview/euclidean_resection.cc
@@ -107,7 +107,7 @@
// Find the unit quaternion q that maximizes qNq. It is the eigenvector
// corresponding to the lagest eigenvalue.
- Vec4 q = N.jacobiSvd<Eigen::ComputeFullU>().matrixU().col(0);
+ Vec4 q = N.jacobiSvd(Eigen::ComputeFullU).matrixU().col(0);
// Retrieve the 3x3 rotation matrix.
Vec4 qq = q.array() * q.array();
@@ -246,7 +246,7 @@
}
int num_lambda = num_points + 1; // Dimension of the null space of M.
- Mat V = M.jacobiSvd<Eigen::ComputeFullV>().matrixV().block(
+ Mat V = M.jacobiSvd(Eigen::ComputeFullV).matrixV().block(
0, num_m_rows, num_m_columns, num_lambda);
// TODO(vess): The number of constraint equations in K (num_k_rows) must be
@@ -303,7 +303,7 @@
}
}
Vec L_sq =
- K.jacobiSvd<Eigen::ComputeFullV>().matrixV().col(num_k_columns - 1);
+ K.jacobiSvd(Eigen::ComputeFullV).matrixV().col(num_k_columns - 1);
// Pivot on the largest element for numerical stability. Afterwards recover
// the sign of the lambda solution.
--- a/intern/libmv/libmv/tracking/track_region.cc
+++ b/intern/libmv/libmv/tracking/track_region.cc
@@ -940,7 +940,7 @@
}
// TODO(keir): Check solution quality.
- Vec4 a = Q1.jacobiSvd<Eigen::ComputeThinU | Eigen::ComputeThinV>().solve(Q2);
+ Vec4 a = Q1.jacobiSvd(Eigen::ComputeThinU | Eigen::ComputeThinV).solve(Q2);
parameters[2] = a[0];
parameters[3] = a[1];
parameters[4] = a[2];
--- a/intern/dualcon/intern/octree.cpp
+++ b/intern/dualcon/intern/octree.cpp
@@ -2184,7 +2184,7 @@
static void pseudoInverse(const Eigen::Matrix3f &a, Eigen::Matrix3f &result, float tolerance)
{
const int Options = Eigen::ComputeFullU | Eigen::ComputeFullV;
- Eigen::JacobiSVD<Eigen::Matrix3f, Options> svd = a.jacobiSvd<Options>();
+ Eigen::JacobiSVD<Eigen::Matrix3f> svd = a.jacobiSvd(Options);
result = svd.matrixV() *
Eigen::Vector3f((svd.singularValues().array().abs() > tolerance)
--- a/intern/slim/intern/slim.cpp
+++ b/intern/slim/intern/slim.cpp
@@ -208,8 +208,8 @@
Eigen::PlainObjectBase<DerivedV> &V)
{
using namespace std;
- Eigen::JacobiSVD<DerivedA, Eigen::ComputeFullU | Eigen::ComputeFullV> svd;
- svd.compute(A);
+ Eigen::JacobiSVD<DerivedA> svd;
+ svd.compute(A, Eigen::ComputeFullU | Eigen::ComputeFullV);
U = svd.matrixU();
V = svd.matrixV();
S = svd.singularValues();
|