1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package blas
- // Compute the sum Y = \alpha X + Y for the vectors X and Y
- func Daxpy(N int, alpha float64, X []float64, incX int, Y []float64, incY int)
- func daxpy(N int, alpha float64, X []float64, incX int, Y []float64, incY int) {
- var xi, yi int
- switch alpha {
- case 0:
- case 1:
- for ; N >= 2; N -= 2 {
- Y[yi] += X[xi]
- xi += incX
- yi += incY
- Y[yi] += X[xi]
- xi += incX
- yi += incY
- }
- if N != 0 {
- Y[yi] += alpha * X[xi]
- }
- case -1:
- for ; N >= 2; N -= 2 {
- Y[yi] -= X[xi]
- xi += incX
- yi += incY
- Y[yi] -= X[xi]
- xi += incX
- yi += incY
- }
- if N != 0 {
- Y[yi] -= X[xi]
- }
- default:
- for ; N >= 2; N -= 2 {
- Y[yi] += alpha * X[xi]
- xi += incX
- yi += incY
- Y[yi] += alpha * X[xi]
- xi += incX
- yi += incY
- }
- if N != 0 {
- Y[yi] += alpha * X[xi]
- }
- }
- }
|