Sub-phases 2+3: co-occurrence pass 1 + normalize. */
| 1301 | |
| 1302 | /* Sub-phases 2+3: co-occurrence pass 1 + normalize. */ |
| 1303 | static void finalize_pass1(finalize_params_t *p) { |
| 1304 | cooccur_sparse_ctx_t cc = { |
| 1305 | .entries = p->corpus->entries, |
| 1306 | .src_entries = p->src_entries, |
| 1307 | .doc_token_ids = p->corpus->doc_token_ids, |
| 1308 | .doc_token_counts = p->corpus->doc_token_counts, |
| 1309 | .rev = p->rev, |
| 1310 | .doc_count = p->corpus->doc_count, |
| 1311 | .entry_count = p->corpus->entry_count, |
| 1312 | .num_chunks = p->num_chunks, |
| 1313 | .chunk_size = p->chunk_size, |
| 1314 | .tile_size = p->tile_size, |
| 1315 | }; |
| 1316 | atomic_init(&cc.next_chunk, 0); |
| 1317 | cbm_parallel_for(p->worker_count, cooccur_worker_sparse, &cc, p->opts); |
| 1318 | |
| 1319 | norm_ctx_t nc = {.entries = p->corpus->entries, .entry_count = p->corpus->entry_count}; |
| 1320 | atomic_init(&nc.next_idx, 0); |
| 1321 | cbm_parallel_for(p->worker_count, normalize_worker, &nc, p->opts); |
| 1322 | } |
| 1323 | |
| 1324 | /* Sub-phases 4+5: quantize pass1 to int8, run RRI pass 2, blend + normalize. */ |
| 1325 | static void finalize_pass2(finalize_params_t *p) { |
no test coverage detected