summaryrefslogtreecommitdiff
path: root/src/Witness_complex/example
diff options
context:
space:
mode:
authorskachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-06-01 09:00:41 +0000
committerskachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-06-01 09:00:41 +0000
commit9e99b02fa2d91aced59c5fded3f1a2e07afe30aa (patch)
tree6910f1da36bcba09e7318caed96ae2a33109a371 /src/Witness_complex/example
parent3efbb8c26aecc9f88dae4ec69d3149a4f5f1bd40 (diff)
Corrected bad-good links
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/witness@601 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 004b949f2d74b803483535b126e76b84b27f4a7e
Diffstat (limited to 'src/Witness_complex/example')
-rw-r--r--src/Witness_complex/example/witness_complex_flat_torus.cpp14
-rw-r--r--src/Witness_complex/example/witness_complex_sphere.cpp9
2 files changed, 16 insertions, 7 deletions
diff --git a/src/Witness_complex/example/witness_complex_flat_torus.cpp b/src/Witness_complex/example/witness_complex_flat_torus.cpp
index ff995a4f..14d6426d 100644
--- a/src/Witness_complex/example/witness_complex_flat_torus.cpp
+++ b/src/Witness_complex/example/witness_complex_flat_torus.cpp
@@ -601,10 +601,12 @@ int landmark_perturbation(Point_Vector &W, Point_Vector& landmarks, std::vector<
std::set< int > perturbL;
int count_badlinks = 0;
//std::cout << "Bad links around ";
+ std::vector< int > count_bad(D);
+ std::vector< int > count_good(D);
for (auto u: witnessComplex.complex_vertex_range())
{
- std::cout << "Vertex " << u << " ";
- if (!witnessComplex.has_good_link(u))
+ //std::cout << "Vertex " << u << " ";
+ if (!witnessComplex.has_good_link(u, count_bad, count_good))
{
//std::cout << "Landmark " << u << " start!" << std::endl;
//perturbL.insert(u);
@@ -621,6 +623,12 @@ int landmark_perturbation(Point_Vector &W, Point_Vector& landmarks, std::vector<
//std::cout << "PerturbL size is " << perturbL.size() << std::endl;
}
}
+ for (unsigned int i = 0; i != count_good.size(); i++)
+ if (count_good[i] != 0)
+ std::cout << "count_good[" << i << "] = " << count_good[i] << std::endl;
+ for (unsigned int i = 0; i != count_bad.size(); i++)
+ if (count_bad[i] != 0)
+ std::cout << "count_bad[" << i << "] = " << count_bad[i] << std::endl;
std::cout << "\nBad links total: " << count_badlinks << " Points to perturb: " << perturbL.size() << std::endl;
//std::cout << "landmark[0][0] before" << landmarks[0][0] << std::endl;
//*********************** Perturb bad link landmarks
@@ -744,7 +752,7 @@ int main (int argc, char * const argv[])
write_points("landmarks/initial_pointset",point_vector);
//write_points("landmarks/initial_landmarks",L);
- for (int i = 0; i < 1; i++)
+ for (int i = 0; bl > 0; i++)
{
std::cout << "========== Start iteration " << i << "== curr_min(" << curr_min << ")========\n";
bl=landmark_perturbation(point_vector, L, chosen_landmarks);
diff --git a/src/Witness_complex/example/witness_complex_sphere.cpp b/src/Witness_complex/example/witness_complex_sphere.cpp
index 7ba1dd61..f6345411 100644
--- a/src/Witness_complex/example/witness_complex_sphere.cpp
+++ b/src/Witness_complex/example/witness_complex_sphere.cpp
@@ -584,8 +584,8 @@ int landmark_perturbation(Point_Vector &W, Point_Vector& landmarks, std::vector<
std::set< int > perturbL;
int count_badlinks = 0;
//std::cout << "Bad links around ";
- std::vector< int > count_bad(D+3);
- std::vector< int > count_good(D+3);
+ std::vector< int > count_bad(D);
+ std::vector< int > count_good(D);
for (auto u: witnessComplex.complex_vertex_range())
if (!witnessComplex.has_good_link(u, count_bad, count_good))
{
@@ -623,8 +623,8 @@ int landmark_perturbation(Point_Vector &W, Point_Vector& landmarks, std::vector<
{
while (K().squared_distance_d_object()(*rp,origin) < lambda/256)
rp++;
- //FT coord = W[landmarks_ind[u]][i] + (*rp)[i];
- FT coord = landmarks[u][i] + (*rp)[i];
+ FT coord = W[landmarks_ind[u]][i] + (*rp)[i];
+ //FT coord = landmarks[u][i] + (*rp)[i];
if (coord > 1)
point.push_back(coord-1);
else if (coord < -1)
@@ -723,6 +723,7 @@ int main (int argc, char * const argv[])
write_points("landmarks/initial_landmarks",L);
for (int i = 0; bl > 0; i++)
+ //for (int i = 0; i < 1; i++)
{
std::cout << "========== Start iteration " << i << "== curr_min(" << curr_min << ")========\n";
bl=landmark_perturbation(point_vector, L, chosen_landmarks);