math.d.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. type VectorFunction = (xVector: number[], yVector: number[]) => number;
  2. /**
  3. * Apply a row-wise function between two matrices with the same number of columns.
  4. *
  5. * @param {number[][]} X - The first matrix.
  6. * @param {number[][]} Y - The second matrix.
  7. * @param {VectorFunction} func - The function to apply.
  8. *
  9. * @throws {Error} If the number of columns in X and Y are not the same.
  10. *
  11. * @returns {number[][] | [[]]} A matrix where each row represents the result of applying the function between the corresponding rows of X and Y.
  12. */
  13. export declare function matrixFunc(X: number[][], Y: number[][], func: VectorFunction): number[][];
  14. export declare function normalize(M: number[][], similarity?: boolean): number[][];
  15. /**
  16. * This function calculates the row-wise cosine similarity between two matrices with the same number of columns.
  17. *
  18. * @param {number[][]} X - The first matrix.
  19. * @param {number[][]} Y - The second matrix.
  20. *
  21. * @throws {Error} If the number of columns in X and Y are not the same.
  22. *
  23. * @returns {number[][] | [[]]} A matrix where each row represents the cosine similarity values between the corresponding rows of X and Y.
  24. */
  25. export declare function cosineSimilarity(X: number[][], Y: number[][]): number[][];
  26. export declare function innerProduct(X: number[][], Y: number[][]): number[][];
  27. export declare function euclideanDistance(X: number[][], Y: number[][]): number[][];
  28. /**
  29. * This function implements the Maximal Marginal Relevance algorithm
  30. * to select a set of embeddings that maximizes the diversity and relevance to a query embedding.
  31. *
  32. * @param {number[]|number[][]} queryEmbedding - The query embedding.
  33. * @param {number[][]} embeddingList - The list of embeddings to select from.
  34. * @param {number} [lambda=0.5] - The trade-off parameter between relevance and diversity.
  35. * @param {number} [k=4] - The maximum number of embeddings to select.
  36. *
  37. * @returns {number[]} The indexes of the selected embeddings in the embeddingList.
  38. */
  39. export declare function maximalMarginalRelevance(queryEmbedding: number[] | number[][], embeddingList: number[][], lambda?: number, k?: number): number[];
  40. export {};