MCPcopy Create free account
hub / github.com/antirez/llama.cpp-deepseek-v4-flash / common_embd_normalize

Function common_embd_normalize

common/common.cpp:1651–1685  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1649//
1650
1651void common_embd_normalize(const float * inp, float * out, int n, int embd_norm) {
1652 double sum = 0.0;
1653
1654 switch (embd_norm) {
1655 case -1: // no normalisation
1656 sum = 1.0;
1657 break;
1658 case 0: // max absolute
1659 for (int i = 0; i < n; i++) {
1660 if (sum < std::abs(inp[i])) {
1661 sum = std::abs(inp[i]);
1662 }
1663 }
1664 sum /= 32760.0; // make an int16 range
1665 break;
1666 case 2: // euclidean
1667 for (int i = 0; i < n; i++) {
1668 sum += inp[i] * inp[i];
1669 }
1670 sum = std::sqrt(sum);
1671 break;
1672 default: // p-norm (euclidean is p-norm p=2)
1673 for (int i = 0; i < n; i++) {
1674 sum += std::pow(std::abs(inp[i]), embd_norm);
1675 }
1676 sum = std::pow(sum, 1.0 / embd_norm);
1677 break;
1678 }
1679
1680 const float norm = sum > 0.0 ? 1.0 / sum : 0.0f;
1681
1682 for (int i = 0; i < n; i++) {
1683 out[i] = inp[i] * norm;
1684 }
1685}
1686
1687float common_embd_similarity_cos(const float * embd1, const float * embd2, int n){
1688 double sum = 0.0;

Callers 4

send_embeddingMethod · 0.85
output_dataMethod · 0.85
batch_decodeFunction · 0.85
batch_processFunction · 0.85

Calls 1

powFunction · 0.85

Tested by

no test coverage detected