Skip to content

Commit a97eb0c

Browse files
committed
Added additional jacobian constructor
1 parent 905f5af commit a97eb0c

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

src/optimization/cone_metric.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,34 @@ MatrixX DifferentiableConeMetric::change_metric_to_reduced_coordinates(
4343
assert(J.size() == V.size());
4444
int num_entries = V.size();
4545

46+
// Build triplet list
4647
typedef Eigen::Triplet<Scalar> T;
4748
std::vector<T> tripletList;
4849
tripletList.reserve(num_entries);
4950
for (int k = 0; k < num_entries; ++k) {
5051
tripletList.push_back(T(I[k], J[k], V[k]));
5152
}
5253

54+
// Use triplet list method
55+
return change_metric_to_reduced_coordinates(tripletList, num_rows);
56+
}
57+
58+
MatrixX DifferentiableConeMetric::change_metric_to_reduced_coordinates(
59+
const std::vector<Eigen::Triplet<Scalar>>& tripletList,
60+
int num_rows) const
61+
{
5362
// Build Jacobian from triplets
63+
int num_entries = tripletList.size();
5464
int num_halfedges = n_halfedges();
5565
MatrixX halfedge_jacobian(num_rows, num_halfedges);
5666
halfedge_jacobian.reserve(num_entries);
5767
halfedge_jacobian.setFromTriplets(tripletList.begin(), tripletList.end());
5868

59-
// Get transition Jacobian
60-
MatrixX J_transition = get_transition_jacobian();
61-
62-
return halfedge_jacobian * J_transition;
69+
// Use matrix method
70+
return change_metric_to_reduced_coordinates(halfedge_jacobian);
6371
}
6472

73+
6574
MatrixX DifferentiableConeMetric::change_metric_to_reduced_coordinates(
6675
const MatrixX& halfedge_jacobian) const
6776
{

src/optimization/cone_metric.hh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ public:
5555
const std::vector<int>& J,
5656
const std::vector<Scalar>& V,
5757
int num_rows) const;
58-
58+
MatrixX change_metric_to_reduced_coordinates(
59+
const std::vector<Eigen::Triplet<Scalar>>& tripletList,
60+
int num_rows) const;
5961
MatrixX change_metric_to_reduced_coordinates(const MatrixX& halfedge_jacobian) const;
6062

6163
virtual ~DifferentiableConeMetric() = default;

0 commit comments

Comments
 (0)