// InnerProduct computes the inner product through a kernel trick // K(x, y) = (x^T y + 1)^d func (p *PolyKernel) InnerProduct(vectorX *mat64.Dense, vectorY *mat64.Dense) float64 { result := vectorX.Dot(vectorY) result = math.Pow(result+1, float64(p.degree)) return result }
// Compute Eucledian inner product. func (self *Euclidean) InnerProduct(vectorX *mat64.Dense, vectorY *mat64.Dense) float64 { result := vectorX.Dot(vectorY) return result }