OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / blas / gonum / level1single_sdot.go
diff --git a/vendor/gonum.org/v1/gonum/blas/gonum/level1single_sdot.go b/vendor/gonum.org/v1/gonum/blas/gonum/level1single_sdot.go
new file mode 100644 (file)
index 0000000..c2e2515
--- /dev/null
@@ -0,0 +1,53 @@
+// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.
+
+// Copyright ©2015 The Gonum Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package gonum
+
+import (
+       "gonum.org/v1/gonum/internal/asm/f32"
+)
+
+// Sdot computes the dot product of the two vectors
+//  \sum_i x[i]*y[i]
+//
+// Float32 implementations are autogenerated and not directly tested.
+func (Implementation) Sdot(n int, x []float32, incX int, y []float32, incY int) float32 {
+       if incX == 0 {
+               panic(zeroIncX)
+       }
+       if incY == 0 {
+               panic(zeroIncY)
+       }
+       if n <= 0 {
+               if n == 0 {
+                       return 0
+               }
+               panic(negativeN)
+       }
+       if incX == 1 && incY == 1 {
+               if len(x) < n {
+                       panic(badLenX)
+               }
+               if len(y) < n {
+                       panic(badLenY)
+               }
+               return f32.DotUnitary(x[:n], y)
+       }
+       var ix, iy int
+       if incX < 0 {
+               ix = (-n + 1) * incX
+       }
+       if incY < 0 {
+               iy = (-n + 1) * incY
+       }
+       if ix >= len(x) || ix+(n-1)*incX >= len(x) {
+               panic(badLenX)
+       }
+       if iy >= len(y) || iy+(n-1)*incY >= len(y) {
+               panic(badLenY)
+       }
+       return f32.DotInc(x, y, uintptr(n), uintptr(incX), uintptr(incY), uintptr(ix), uintptr(iy))
+}