func AngularF32(a, b []float32) float64 Both slices must have the same length.
The dense distance family includes squared Euclidean, Euclidean, and angular distance.
Each metric supports float64, float32, int8, and uint8.
package main
import (
"fmt"
nk "github.com/ashvardanian/NumKong/golang"
)
func main() {
a := []float64{1, 2, 3, 4}
b := []float64{4, 3, 2, 1}
fmt.Println(nk.SqEuclideanF64(a, b))
fmt.Println(nk.EuclideanF64(a, b))
fmt.Println(nk.AngularF64(a, b))
}The int8 and uint8 families widen their outputs. AngularF32 and EuclideanF32 return float64. AngularI8, AngularU8, EuclideanI8, EuclideanU8 return float32. SqEuclideanI8 and SqEuclideanU8 return uint32.
AngularF32AngularF32 computes the angular distance between two float32 vectors.AngularF64AngularF64 computes the angular distance between two float64 vectors.AngularI8AngularI8 computes the angular distance between two int8 vectors.AngularU8AngularU8 computes the angular distance between two uint8 vectors.EuclideanF32EuclideanF32 computes the Euclidean distance between two float32 vectors.EuclideanF64EuclideanF64 computes the Euclidean distance between two float64 vectors.EuclideanI8EuclideanI8 computes the Euclidean distance between two int8 vectors.EuclideanU8EuclideanU8 computes the Euclidean distance between two uint8 vectors.SqEuclideanF32SqEuclideanF32 computes the squared Euclidean distance between two float32 vectors.SqEuclideanF64SqEuclideanF64 computes the squared Euclidean distance between two float64 vectors.SqEuclideanI8SqEuclideanI8 computes the squared Euclidean distance between two int8 vectors.SqEuclideanU8SqEuclideanU8 computes the squared Euclidean distance between two uint8 vectors.