{"record":{"id":"6adc10992d28b05b","repo":"rohitg00/ai-engineering-from-scratch","slug":"cosine-vector-length-mismatch-a-length-vs-b","errorCode":null,"errorMessage":"cosine: vector length mismatch (${a.length} vs ${b.length})","messagePattern":"cosine: vector length mismatch \\((.+?) vs (.+?)\\)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index_store.ts","lineNumber":34,"sourceCode":"  return h >>> 0;\n}\n\nexport function fakeEmbed(text: string, dim = 64): number[] {\n  const vec = new Array<number>(dim).fill(0);\n  for (const tok of tokenize(text)) {\n    const h = fnv1a(tok);\n    vec[h % dim] += 1.0;\n    vec[(h >>> 8) % dim] += 0.5;\n  }\n  let norm = 0;\n  for (const v of vec) norm += v * v;\n  norm = Math.sqrt(norm) || 1.0;\n  return vec.map((v) => v / norm);\n}\n\nexport function cosine(a: readonly number[], b: readonly number[]): number {\n  if (a.length !== b.length) {\n    throw new Error(\n      `cosine: vector length mismatch (${a.length} vs ${b.length})`,\n    );\n  }\n  let dot = 0;\n  let na = 0;\n  let nb = 0;\n  for (let i = 0; i < a.length; i++) {\n    dot += a[i] * b[i];\n    na += a[i] * a[i];\n    nb += b[i] * b[i];\n  }\n  if (na === 0 || nb === 0) return 0;\n  return dot / (Math.sqrt(na) * Math.sqrt(nb));\n}\n\nexport class DenseIndex {\n  private vectors: { chunk: Chunk; vec: number[] }[] = [];\n","sourceCodeStart":16,"sourceCodeEnd":52,"githubUrl":"https://github.com/rohitg00/ai-engineering-from-scratch/blob/39ea8a1c6d0b61f071226eff7ede4d4105fed820/phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index_store.ts#L16-L52","documentation":"Error \"cosine: vector length mismatch (${a.length} vs ${b.length})\" thrown in rohitg00/ai-engineering-from-scratch.","triggerScenarios":"Thrown at phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index_store.ts:34 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"39ea8a1c6d0b61f071226eff7ede4d4105fed820","analyzedAt":"2026-08-26T03:13:46.626Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}