dotproduct.go 656 B

12345678910111213141516171819202122232425262728293031
  1. //+build !noasm
  2. //+build !appengine
  3. package dotproduct
  4. //go:noescape
  5. func _dp_int32(a *int32, b *int32, gN *int32, res *int32)
  6. //go:noescape
  7. func _dpavx_int32(a *int32, b *int32, gN *int32, res *int32)
  8. //go:noescape
  9. func Sum(x []uint64) uint64
  10. func DotProductAsm(a []int32, b []int32, N int32) int32 {
  11. var val *int32
  12. var res1 int32
  13. val = &res1
  14. _dp_int32((&a[0]), (&b[0]), (&N), (val))
  15. //fmt.Printf("val %+v %+v\n", N, res1)
  16. return *val
  17. }
  18. func DotProductAsmAvx(a []int32, b []int32, N int32) int32 {
  19. var val *int32
  20. var res1 int32
  21. val = &res1
  22. _dpavx_int32((&a[0]), (&b[0]), (&N), (val))
  23. //fmt.Printf("val %+v %+v\n", N, res1)
  24. return *val
  25. }