Rename and small fix.

release/4.3a0
jingwuOUO 2020-08-25 14:47:08 -04:00
parent df73414b1c
commit 491405a5f1
2 changed files with 6 additions and 7 deletions

View File

@ -643,19 +643,18 @@ bool ShonanAveraging<d>::checkOptimality(const Values &values) const {
} }
/* ************************************************************************* */ /* ************************************************************************* */
/// Create a VectorValues with eigenvector v
template <size_t d> template <size_t d>
VectorValues ShonanAveraging<d>::MakeATangentVectorValues(size_t p, VectorValues ShonanAveraging<d>::TangentVectorValues(size_t p,
const Vector &v) { const Vector &v) {
VectorValues delta; VectorValues delta;
// Create a tangent direction xi with eigenvector segment v_i // Create a tangent direction xi with eigenvector segment v_i
const size_t dimension = SOn::Dimension(p); const size_t dimension = SOn::Dimension(p);
double sign0 = pow(-1.0, round((p + 1) / 2) + 1);
for (size_t i = 0; i < v.size() / d; i++) { for (size_t i = 0; i < v.size() / d; i++) {
// Create a tangent direction xi with eigenvector segment v_i
// Assumes key is 0-based integer // Assumes key is 0-based integer
const auto v_i = v.segment<d>(d * i); const auto v_i = v.segment<d>(d * i);
Vector xi = Vector::Zero(dimension); Vector xi = Vector::Zero(dimension);
double sign = pow(-1.0, round((p + 1) / 2) + 1); double sign = sign0;
for (size_t j = 0; j < d; j++) { for (size_t j = 0; j < d; j++) {
xi(j + p - d - 1) = sign * v_i(d - j - 1); xi(j + p - d - 1) = sign * v_i(d - j - 1);
sign = -sign; sign = -sign;
@ -696,7 +695,7 @@ template <size_t d>
Values ShonanAveraging<d>::LiftwithDescent(size_t p, const Values &values, Values ShonanAveraging<d>::LiftwithDescent(size_t p, const Values &values,
const Vector &minEigenVector) { const Vector &minEigenVector) {
Values lifted = LiftTo<SOn>(p, values); Values lifted = LiftTo<SOn>(p, values);
VectorValues delta = MakeATangentVectorValues(p, minEigenVector); VectorValues delta = TangentVectorValues(p, minEigenVector);
return lifted.retract(delta); return lifted.retract(delta);
} }

View File

@ -202,7 +202,7 @@ public:
Values roundSolutionS(const Matrix &S) const; Values roundSolutionS(const Matrix &S) const;
/// Create a VectorValues with eigenvector v_i /// Create a VectorValues with eigenvector v_i
static VectorValues MakeATangentVectorValues(size_t p, const Vector &v); static VectorValues TangentVectorValues(size_t p, const Vector &v);
/// Calculate the riemannian gradient of F(values) at values /// Calculate the riemannian gradient of F(values) at values
Matrix riemannianGradient(size_t p, const Values &values) const; Matrix riemannianGradient(size_t p, const Values &values) const;