Commit 789142d
committed
Algorithm optimizations: fix critical bounds bug, O(1) lookups, faster init
- CRITICAL: Fix EBIMatrix bounds check (i <= rows → i < rows) preventing
silent out-of-bounds access on matrix edge indices
- EBIMatrix: Use Arrays.fill() for initMatrix (native vs manual loop)
- GraphMatcher: Replace O(n) linear atom-by-ID scan with O(1) HashMap
lookup — builds ID→Atom maps once, then O(1) per mapping pair
- GraphMatcher: Scale thread pool cap from 4 to 8 for multi-core systems
- Holder: Combine setFingerprint() + setMolMapping() into single loop,
pre-cache fingerprints to avoid redundant map lookups
All 40 tests pass.
Author: Syed Asad Rahman <asad.rahman@bioinceptionlabs.com>1 parent 8bee8f7 commit 789142d
3 files changed
Lines changed: 57 additions & 54 deletions
File tree
- src/main/java/com/bioinceptionlabs/reactionblast
- mapping
- algorithm
- graph
- tools
Lines changed: 33 additions & 27 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
| 102 | + | |
| 103 | + | |
106 | 104 | | |
107 | 105 | | |
108 | 106 | | |
| |||
171 | 169 | | |
172 | 170 | | |
173 | 171 | | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
188 | 184 | | |
189 | 185 | | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
195 | 199 | | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
200 | 206 | | |
201 | 207 | | |
202 | 208 | | |
| |||
Lines changed: 20 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
154 | 154 | | |
155 | 155 | | |
156 | 156 | | |
157 | | - | |
158 | | - | |
| 157 | + | |
| 158 | + | |
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
| |||
385 | 385 | | |
386 | 386 | | |
387 | 387 | | |
388 | | - | |
389 | | - | |
390 | | - | |
391 | | - | |
392 | | - | |
393 | | - | |
394 | | - | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
395 | 406 | | |
396 | 407 | | |
397 | 408 | | |
| |||
410 | 421 | | |
411 | 422 | | |
412 | 423 | | |
413 | | - | |
414 | | - | |
415 | | - | |
416 | | - | |
417 | | - | |
418 | | - | |
419 | | - | |
420 | | - | |
421 | | - | |
422 | | - | |
423 | | - | |
424 | 424 | | |
Lines changed: 4 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
413 | | - | |
414 | | - | |
415 | | - | |
| 413 | + | |
416 | 414 | | |
417 | 415 | | |
418 | 416 | | |
| |||
427 | 425 | | |
428 | 426 | | |
429 | 427 | | |
430 | | - | |
| 428 | + | |
431 | 429 | | |
432 | 430 | | |
433 | | - | |
434 | | - | |
| 431 | + | |
435 | 432 | | |
436 | 433 | | |
437 | 434 | | |
| |||
564 | 561 | | |
565 | 562 | | |
566 | 563 | | |
567 | | - | |
| 564 | + | |
568 | 565 | | |
569 | 566 | | |
570 | 567 | | |
| |||
0 commit comments