Skip to content

Commit e01a596

Browse files
committed
update
1 parent 77b66f1 commit e01a596

File tree

8 files changed

+18
-31
lines changed

8 files changed

+18
-31
lines changed

.claude/CLAUDE.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,8 @@
2626
- [ ] CHANGELOG.md updated (Unreleased)
2727
- [ ] Docs updated (if user-facing)
2828
- [ ] Optional deps remain optional
29+
30+
## Guidelines
31+
- Buffer > thread_local >> heap allocation: already enforced everywhere
32+
- No naked `new`/`delete` in core: already enforced
33+
- Contiguous arrays in hot paths: `Data::p_vec` as `vector<vector<data_t>>` is correct for variable-length series

.claude/TODO.md

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,4 @@
4545

4646
### Platform
4747
- [ ] ARM Mac Studio investigation: test CPU path on Apple Silicon, evaluate Metal compute for GPU path
48-
- [ ] HIPify for AMD GPU — **accept community PRs only**, do not invest core developer time
49-
50-
## Guidelines (not TODOs — current conventions)
51-
- Buffer > thread_local >> heap allocation: already enforced everywhere
52-
- No naked `new`/`delete` in core: already enforced
53-
- Contiguous arrays in hot paths: `Data::p_vec` as `vector<vector<data_t>>` is correct for variable-length series
54-
55-
## Removed (completed or cut)
56-
- ~~NaN/-ffast-math robustification~~**DONE**: explicit fast-math sub-flags + `std::isnan()` wrapper
57-
- ~~Eigen 5.0.1 exploration~~**CUT**: Eigen used only as aligned allocator, no gap identified
58-
- ~~Condensed distance matrix~~**DONE**: `DenseDistanceMatrix` already uses packed triangular N*(N+1)/2
59-
- ~~Unnecessary memory allocations audit~~**CUT**: 30+ `thread_local` declarations already in place
60-
- ~~Device-side LB pruning (pair-level)~~**DONE**: `compact_active_pairs` in `cuda_dtw.cu`
48+
- [ ] HIPify for AMD GPU — **accept community PRs only**, do not invest core developer time

.claude/settings.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"env": {
3-
"CLAUDE_CODE_TASK_LIST_ID": "dtwcpp",
3+
"CLAUDE_CODE_TASK_LIST_ID": "dtwcpp"
44
},
5-
"plansDirectory": "./.claude/reports",
6-
"model": "opusplan"
5+
"plansDirectory": "./.claude/reports"
76
}

cmake/CPM.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
#
33
# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors
44

5-
set(CPM_DOWNLOAD_VERSION 0.40.2)
6-
set(CPM_HASH_SUM "c8cdc32c03816538ce22781ed72964dc864b2a34a310d3b7104812a5ca2d835d")
5+
set(CPM_DOWNLOAD_VERSION 0.42.1)
6+
set(CPM_HASH_SUM "f3a6dcc6a04ce9e7f51a127307fa4f699fb2bade357a8eb4c5b45df76e1dc6a5")
77

88
if(CPM_SOURCE_CACHE)
99
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")

cmake/Dependencies.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ function(dtwc_setup_dependencies)
8686
CPMAddPackage(
8787
NAME benchmark
8888
GITHUB_REPOSITORY google/benchmark
89-
VERSION 1.9.1
89+
VERSION 1.9.5
9090
OPTIONS
9191
"BENCHMARK_ENABLE_TESTING OFF"
9292
"BENCHMARK_ENABLE_GTEST_TESTS OFF"
@@ -98,7 +98,7 @@ function(dtwc_setup_dependencies)
9898
if(DTWC_ENABLE_YAML AND NOT TARGET yaml-cpp)
9999
CPMAddPackage(
100100
NAME yaml-cpp
101-
URL "https://github.com/jbeder/yaml-cpp/archive/refs/tags/0.8.0.tar.gz"
101+
URL "https://github.com/jbeder/yaml-cpp/archive/refs/tags/0.9.0.tar.gz"
102102
SYSTEM
103103
EXCLUDE_FROM_ALL
104104
OPTIONS "YAML_CPP_BUILD_TESTS OFF" "YAML_CPP_BUILD_TOOLS OFF"

dtwc/missing_utils.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
* etc.) but NOT -ffinite-math-only, so std::isnan() is correct and available.
88
* - is_missing() is a thin semantic wrapper over std::isnan() — prefer this name
99
* in domain code for clarity ("missing value" not "not-a-number").
10-
* - DenseDistanceMatrix tracks computed entries via std::vector<bool> (not NaN
11-
* sentinels), which is safe regardless of floating-point mode.
1210
*
1311
* @author Volkan Kumtepeli
1412
* @date 02 Apr 2026

dtwc/scores.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ double daviesBouldinIndex(Problem &prob)
132132
double max_ratio = 0.0;
133133
for (int j = 0; j < Nc; ++j) {
134134
if (i != j) {
135-
double d_ij = prob.distByInd(prob.centroids_ind[i], prob.centroids_ind[j]);
135+
const double d_ij = prob.distByInd(prob.centroids_ind[i], prob.centroids_ind[j]);
136136
if (d_ij > 0) {
137137
double ratio = (scatter[i] + scatter[j]) / d_ij;
138138
max_ratio = std::max(max_ratio, ratio);
@@ -167,14 +167,11 @@ double dunnIndex(Problem &prob)
167167

168168
for (int i = 0; i < N; ++i) {
169169
for (int j = i + 1; j < N; ++j) {
170-
double d = prob.distByInd(i, j);
171-
if (prob.clusters_ind[i] == prob.clusters_ind[j]) {
172-
// Same cluster: contributes to intra-cluster diameter
173-
max_intra = std::max(max_intra, d);
174-
} else {
175-
// Different clusters: contributes to inter-cluster distance
176-
min_inter = std::min(min_inter, d);
177-
}
170+
const double d = prob.distByInd(i, j);
171+
if (prob.clusters_ind[i] == prob.clusters_ind[j])
172+
max_intra = std::max(max_intra, d); // Same cluster: contributes to intra-cluster diameter
173+
else
174+
min_inter = std::min(min_inter, d); // Different clusters: contributes to inter-cluster distance
178175
}
179176
}
180177

dtwc/simd/.gitkeep

Whitespace-only changes.

0 commit comments

Comments
 (0)