MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / finalize_pass2

Function finalize_pass2

src/semantic/semantic.c:1325–1376  ·  view source on GitHub ↗

Sub-phases 4+5: quantize pass1 to int8, run RRI pass 2, blend + normalize. */

Source from the content-addressed store, hash-verified

1323
1324/* Sub-phases 4+5: quantize pass1 to int8, run RRI pass 2, blend + normalize. */
1325static void finalize_pass2(finalize_params_t *p) {
1326 int8_t *pass1_q = malloc((size_t)p->corpus->entry_count * CBM_SEM_DIM * sizeof(int8_t));
1327 if (pass1_q) {
1328 pass1_quant_ctx_t qc = {
1329 .entries = p->corpus->entries,
1330 .pass1_q = pass1_q,
1331 .entry_count = p->corpus->entry_count,
1332 };
1333 atomic_init(&qc.next_idx, 0);
1334 cbm_parallel_for(p->worker_count, pass1_quantize_worker, &qc, p->opts);
1335 }
1336
1337 cbm_sem_vec_t *pass1 = malloc((size_t)p->corpus->entry_count * sizeof(cbm_sem_vec_t));
1338 if (pass1) {
1339 for (int i = 0; i < p->corpus->entry_count; i++) {
1340 pass1[i] = p->corpus->entries[i].enriched_vec;
1341 }
1342 }
1343
1344 if (pass1_q) {
1345 cooccur_int8_ctx_t cc = {
1346 .entries = p->corpus->entries,
1347 .pass1_q = pass1_q,
1348 .doc_token_ids = p->corpus->doc_token_ids,
1349 .doc_token_counts = p->corpus->doc_token_counts,
1350 .rev = p->rev,
1351 .doc_count = p->corpus->doc_count,
1352 .entry_count = p->corpus->entry_count,
1353 .num_chunks = p->num_chunks,
1354 .chunk_size = p->chunk_size,
1355 .tile_size = p->tile_size,
1356 };
1357 atomic_init(&cc.next_chunk, 0);
1358 cbm_parallel_for(p->worker_count, cooccur_worker_int8, &cc, p->opts);
1359 }
1360
1361 if (pass1) {
1362 blend_ctx_t bc = {
1363 .entries = p->corpus->entries,
1364 .pass1 = pass1,
1365 .entry_count = p->corpus->entry_count,
1366 };
1367 atomic_init(&bc.next_idx, 0);
1368 cbm_parallel_for(p->worker_count, blend_worker, &bc, p->opts);
1369 free(pass1);
1370 }
1371 free(pass1_q);
1372
1373 norm_ctx_t nc = {.entries = p->corpus->entries, .entry_count = p->corpus->entry_count};
1374 atomic_init(&nc.next_idx, 0);
1375 cbm_parallel_for(p->worker_count, normalize_worker, &nc, p->opts);
1376}
1377
1378void cbm_sem_corpus_finalize(cbm_sem_corpus_t *corpus) {
1379 if (!corpus || corpus->finalized) {

Callers 1

cbm_sem_corpus_finalizeFunction · 0.85

Calls 1

cbm_parallel_forFunction · 0.85

Tested by

no test coverage detected