1 Star 0 Fork 3

王布衣 / num

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
distance.go 1.90 KB
一键复制 编辑 原始数据 按行查看 历史
王布衣 提交于 2024-02-12 09:23 . 调整package
package functions
import (
"gitee.com/quant1x/num/internal/constraints"
"gitee.com/quant1x/num/math32"
"math"
)
func Dot_Go[T constraints.Float](x, y []T) T {
res := T(0)
for i := 0; i < len(x); i++ {
res += x[i] * y[i]
}
return res
}
func Norm_Go_F64(x []float64) float64 {
res := float64(0)
for i := 0; i < len(x); i++ {
res += x[i] * x[i]
}
return math.Sqrt(res)
}
func Norm_Go_F32(x []float32) float32 {
res := float32(0)
for i := 0; i < len(x); i++ {
res += x[i] * x[i]
}
return math32.Sqrt(res)
}
func Distance_Go_F64(x, y []float64) float64 {
res := float64(0)
for i := 0; i < len(x); i++ {
res += (x[i] - y[i]) * (x[i] - y[i])
}
return math.Sqrt(res)
}
func Distance_Go_F32(x, y []float32) float32 {
res := float32(0)
for i := 0; i < len(x); i++ {
res += (x[i] - y[i]) * (x[i] - y[i])
}
return math32.Sqrt(res)
}
func ManhattanNorm_Go_F64(x []float64) float64 {
res := float64(0)
for i := 0; i < len(x); i++ {
res += math.Abs(x[i])
}
return res
}
func ManhattanNorm_Go_F32(x []float32) float32 {
res := float32(0)
for i := 0; i < len(x); i++ {
res += math32.Abs(x[i])
}
return res
}
func ManhattanDistance_Go_F64(x, y []float64) float64 {
res := float64(0)
for i := 0; i < len(x); i++ {
res += math.Abs(x[i] - y[i])
}
return res
}
func ManhattanDistance_Go_F32(x, y []float32) float32 {
res := float32(0)
for i := 0; i < len(x); i++ {
res += math32.Abs(x[i] - y[i])
}
return res
}
func CosineSimilarity_Go_F64(x, y []float64) float64 {
dp := float64(0)
xdp := float64(0)
ydp := float64(0)
for i := 0; i < len(x); i++ {
dp += x[i] * y[i]
xdp += x[i] * x[i]
ydp += y[i] * y[i]
}
return dp / math.Sqrt(xdp*ydp)
}
func CosineSimilarity_Go_F32(x, y []float32) float32 {
dp := float32(0)
xdp := float32(0)
ydp := float32(0)
for i := 0; i < len(x); i++ {
dp += x[i] * y[i]
xdp += x[i] * x[i]
ydp += y[i] * y[i]
}
return dp / math32.Sqrt(xdp*ydp)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/quant1x/num.git
git@gitee.com:quant1x/num.git
quant1x
num
num
v0.1.3

搜索帮助

344bd9b3 5694891 D2dac590 5694891