Commit 59ab397
PERF: optimize _libs.algos for SIMD auto-vectorization and GIL release
- diff_2d: use raw C pointers for inner loops so the C compiler can
auto-vectorize the subtraction (~20-25% faster for DataFrame.diff)
- take_2d_axis0/axis1: use raw C pointers for inner row copy/conversion
loops enabling auto-vectorization (~10% faster for cross-type reindex)
- nancorr: add no_nans fast path skipping per-element mask checks
- nancorr_spearman: add @cython.cdivision(True)
- rank_sorted_1d: add @cython.cdivision(True) to remove zero-division
checks from the hot ranking loop
- rank_1d: skip unnecessary putmask when check_mask is False
- pad/backfill/pad_inplace/pad_2d_inplace: release GIL for numeric types
- get_fill_indexer: release GIL
- unique_deltas: use C array instead of Python list to avoid GIL
interaction per unique delta
- is_monotonic: remove redundant assignments before break
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent d2f3fcc commit 59ab397
3 files changed
Lines changed: 176 additions & 51 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
| 141 | + | |
141 | 142 | | |
142 | 143 | | |
143 | 144 | | |
| |||
153 | 154 | | |
154 | 155 | | |
155 | 156 | | |
| 157 | + | |
156 | 158 | | |
157 | 159 | | |
158 | 160 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
| 139 | + | |
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | | - | |
| 144 | + | |
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
149 | 157 | | |
150 | 158 | | |
151 | 159 | | |
152 | 160 | | |
153 | 161 | | |
154 | | - | |
| 162 | + | |
| 163 | + | |
155 | 164 | | |
156 | 165 | | |
157 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
158 | 170 | | |
159 | 171 | | |
160 | 172 | | |
| |||
859 | 871 | | |
860 | 872 | | |
861 | 873 | | |
862 | | - | |
863 | | - | |
864 | 874 | | |
865 | 875 | | |
866 | 876 | | |
| |||
1038 | 1048 | | |
1039 | 1049 | | |
1040 | 1050 | | |
1041 | | - | |
1042 | 1051 | | |
1043 | 1052 | | |
1044 | 1053 | | |
| |||
1047 | 1056 | | |
1048 | 1057 | | |
1049 | 1058 | | |
1050 | | - | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
1051 | 1062 | | |
1052 | 1063 | | |
1053 | 1064 | | |
| |||
1372 | 1383 | | |
1373 | 1384 | | |
1374 | 1385 | | |
1375 | | - | |
| 1386 | + | |
1376 | 1387 | | |
1377 | 1388 | | |
1378 | 1389 | | |
| |||
1381 | 1392 | | |
1382 | 1393 | | |
1383 | 1394 | | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
1384 | 1404 | | |
1385 | 1405 | | |
1386 | 1406 | | |
| |||
1397 | 1417 | | |
1398 | 1418 | | |
1399 | 1419 | | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
1400 | 1427 | | |
1401 | 1428 | | |
1402 | 1429 | | |
| |||
1437 | 1464 | | |
1438 | 1465 | | |
1439 | 1466 | | |
1440 | | - | |
1441 | | - | |
1442 | | - | |
1443 | | - | |
1444 | | - | |
1445 | | - | |
1446 | | - | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
1447 | 1492 | | |
1448 | 1493 | | |
1449 | | - | |
1450 | | - | |
1451 | 1494 | | |
1452 | 1495 | | |
1453 | 1496 | | |
1454 | 1497 | | |
1455 | 1498 | | |
1456 | | - | |
1457 | | - | |
1458 | | - | |
1459 | | - | |
1460 | | - | |
1461 | | - | |
1462 | | - | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
1463 | 1523 | | |
1464 | 1524 | | |
1465 | | - | |
1466 | | - | |
1467 | 1525 | | |
1468 | 1526 | | |
1469 | 1527 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
134 | | - | |
135 | | - | |
| 134 | + | |
| 135 | + | |
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
167 | 189 | | |
168 | 190 | | |
169 | 191 | | |
| |||
179 | 201 | | |
180 | 202 | | |
181 | 203 | | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
189 | 224 | | |
190 | | - | |
| 225 | + | |
191 | 226 | | |
192 | | - | |
193 | | - | |
194 | | - | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
195 | 240 | | |
196 | 241 | | |
197 | 242 | | |
| |||
234 | 279 | | |
235 | 280 | | |
236 | 281 | | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
237 | 285 | | |
238 | 286 | | |
239 | 287 | | |
| |||
245 | 293 | | |
246 | 294 | | |
247 | 295 | | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
256 | 312 | | |
257 | | - | |
258 | | - | |
259 | | - | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
260 | 325 | | |
261 | 326 | | |
262 | 327 | | |
| |||
0 commit comments