{"version":3,"sources":["../../../src/internals/helpers/math.ts"],"names":["cosineSimilarity","vecA","vecB","length","ValueError","dot","reduce","sum","value","index","magA","Math","sqrt","magB","cosineSimilarityMatrix","matrixA","matrixB","map","rowA","rowB"],"mappings":";;;;;;AAOO,SAASA,gBAAAA,CAAiBC,MAAgBC,IAAAA,EAAc;AAC7D,EAAA,IAAID,IAAAA,CAAKE,MAAAA,KAAWD,IAAAA,CAAKC,MAAAA,EAAQ;AAC/B,IAAA,MAAM,IAAIC,sBAAW,gCAAA,CAAA;AACvB,EAAA;AAEA,EAAA,MAAMC,GAAAA,GAAMJ,IAAAA,CAAKK,MAAAA,CAAO,CAACC,GAAAA,EAAKC,KAAAA,EAAOC,KAAAA,KAAUF,GAAAA,GAAMC,KAAAA,GAAQN,IAAAA,CAAKO,KAAAA,CAAAA,EAAQ,CAAA,CAAA;AAC1E,EAAA,MAAMC,IAAAA,GAAOC,IAAAA,CAAKC,IAAAA,CAAKX,IAAAA,CAAKK,MAAAA,CAAO,CAACC,GAAAA,EAAKC,KAAAA,KAAUD,GAAAA,GAAMC,KAAAA,IAAS,CAAA,EAAG,CAAA,CAAA,CAAA;AACrE,EAAA,MAAMK,IAAAA,GAAOF,IAAAA,CAAKC,IAAAA,CAAKV,IAAAA,CAAKI,MAAAA,CAAO,CAACC,GAAAA,EAAKC,KAAAA,KAAUD,GAAAA,GAAMC,KAAAA,IAAS,CAAA,EAAG,CAAA,CAAA,CAAA;AAErE,EAAA,IAAIE,IAAAA,KAAS,CAAA,IAAKG,IAAAA,KAAS,CAAA,EAAG;AAC5B,IAAA,MAAM,IAAIT,sBAAW,wCAAA,CAAA;AACvB,EAAA;AACA,EAAA,OAAOC,OAAOK,IAAAA,GAAOG,IAAAA,CAAAA;AACvB;AAbgBb,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAeT,SAASc,sBAAAA,CAAuBC,SAAqBC,OAAAA,EAAmB;AAC7E,EAAA,IAAA,CAAKD,OAAAA,CAAQ,CAAA,CAAA,EAAIZ,MAAAA,IAAU,QAAQY,OAAAA,CAAQ,CAAA,CAAA,EAAIZ,MAAAA,IAAU,CAAA,CAAA,EAAI;AAC3D,IAAA,MAAM,IAAIC,sBAAW,gDAAA,CAAA;AACvB,EAAA;AAEA,EAAA,OAAOW,OAAAA,CAAQE,GAAAA,CAAI,CAACC,IAAAA,KAASF,OAAAA,CAAQC,GAAAA,CAAI,CAACE,IAAAA,KAASnB,gBAAAA,CAAiBkB,IAAAA,EAAMC,IAAAA,CAAAA,CAAAA,CAAAA;AAC5E;AANgBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA","file":"math.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ValueError } from \"@/errors.js\";\n\nexport function cosineSimilarity(vecA: number[], vecB: number[]): number {\n  if (vecA.length !== vecB.length) {\n    throw new ValueError(\"Vectors must have equal length\");\n  }\n  // (cos θ) = (A · B) / (|A| * |B|)\n  const dot = vecA.reduce((sum, value, index) => sum + value * vecB[index], 0);\n  const magA = Math.sqrt(vecA.reduce((sum, value) => sum + value ** 2, 0));\n  const magB = Math.sqrt(vecB.reduce((sum, value) => sum + value ** 2, 0));\n\n  if (magA === 0 || magB === 0) {\n    throw new ValueError(\"Vectors cannot not have zero magnitude\");\n  }\n  return dot / (magA * magB);\n}\n\nexport function cosineSimilarityMatrix(matrixA: number[][], matrixB: number[][]): number[][] {\n  if ((matrixA[0]?.length ?? 0) !== (matrixA[0]?.length ?? 0)) {\n    throw new ValueError(\"Matrices must have the same number of columns.\");\n  }\n\n  return matrixA.map((rowA) => matrixB.map((rowB) => cosineSimilarity(rowA, rowB)));\n}\n"]}