summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Bauer <mail@ulrich-bauer.org>2018-05-19 14:28:22 -0400
committerUlrich Bauer <mail@ulrich-bauer.org>2018-05-19 14:28:22 -0400
commit533d2a9d8abd820e21986a46fb626bf25c9e1c2f (patch)
tree8a2608578adaf18651bc8759f7f965130ac412af
parentfeaade96518abdc5e5496b919d4d90aaa4461d32 (diff)
parentb1768a1da461e01d6a0e325529b9fab4de13d879 (diff)
Merge branch 'sparse-distance-matrix' into representative-cocycles
-rw-r--r--ripser.cpp19
-rw-r--r--ripser.xcodeproj/project.pbxproj14
2 files changed, 19 insertions, 14 deletions
diff --git a/ripser.cpp b/ripser.cpp
index f7424db..aa0a8cb 100644
--- a/ripser.cpp
+++ b/ripser.cpp
@@ -275,23 +275,16 @@ public:
}
index_t find(index_t x) {
- index_t y = x, z = parent[y];
- while (z != y) {
- y = z;
- z = parent[y];
- }
- y = parent[x];
- while (z != y) {
- parent[x] = z;
- x = y;
- y = parent[x];
+ index_t y = x, z;
+ while ((z = parent[y]) != y) y = z;
+ while ((z = parent[x]) != y) {
+ parent[x] = y;
+ x = z;
}
return z;
}
void link(index_t x, index_t y) {
- x = find(x);
- y = find(y);
- if (x == y) return;
+ if ((x = find(x)) == (y = find(y))) return;
if (rank[x] > rank[y])
parent[y] = x;
else {
diff --git a/ripser.xcodeproj/project.pbxproj b/ripser.xcodeproj/project.pbxproj
index 3578fa0..c2667d1 100644
--- a/ripser.xcodeproj/project.pbxproj
+++ b/ripser.xcodeproj/project.pbxproj
@@ -88,7 +88,7 @@
551018401BD63CB300990BFF /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0800;
+ LastUpgradeCheck = 0910;
ORGANIZATIONNAME = "ulrich-bauer.org";
TargetAttributes = {
551018471BD63CB300990BFF = {
@@ -133,14 +133,20 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -178,14 +184,20 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;