rohitg00/ai-engineering-from-scratch · error · Error

cosine: vector length mismatch (${a.length} vs ${b.length})

Error message

cosine: vector length mismatch (${a.length} vs ${b.length})

What it means

Error "cosine: vector length mismatch (${a.length} vs ${b.length})" thrown in rohitg00/ai-engineering-from-scratch.

Source

Thrown at phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index_store.ts:34

  return h >>> 0;
}

export function fakeEmbed(text: string, dim = 64): number[] {
  const vec = new Array<number>(dim).fill(0);
  for (const tok of tokenize(text)) {
    const h = fnv1a(tok);
    vec[h % dim] += 1.0;
    vec[(h >>> 8) % dim] += 0.5;
  }
  let norm = 0;
  for (const v of vec) norm += v * v;
  norm = Math.sqrt(norm) || 1.0;
  return vec.map((v) => v / norm);
}

export function cosine(a: readonly number[], b: readonly number[]): number {
  if (a.length !== b.length) {
    throw new Error(
      `cosine: vector length mismatch (${a.length} vs ${b.length})`,
    );
  }
  let dot = 0;
  let na = 0;
  let nb = 0;
  for (let i = 0; i < a.length; i++) {
    dot += a[i] * b[i];
    na += a[i] * a[i];
    nb += b[i] * b[i];
  }
  if (na === 0 || nb === 0) return 0;
  return dot / (Math.sqrt(na) * Math.sqrt(nb));
}

export class DenseIndex {
  private vectors: { chunk: Chunk; vec: number[] }[] = [];

View on GitHub (pinned to 39ea8a1c6d)

When it happens

Trigger: Thrown at phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index_store.ts:34 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26). Data as JSON: /api/errors/6adc10992d28b05b. Report an issue: GitHub.