github.com/jingcheng-WU/gonum@v0.9.1-0.20210323123734-f1a2a11a8f7b/internal/asm/f64/axpy.go (about)

     1  // Copyright ©2015 The Gonum Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build !amd64 noasm gccgo safe
     6  
     7  package f64
     8  
     9  // AxpyUnitary is
    10  //  for i, v := range x {
    11  //  	y[i] += alpha * v
    12  //  }
    13  func AxpyUnitary(alpha float64, x, y []float64) {
    14  	for i, v := range x {
    15  		y[i] += alpha * v
    16  	}
    17  }
    18  
    19  // AxpyUnitaryTo is
    20  //  for i, v := range x {
    21  //  	dst[i] = alpha*v + y[i]
    22  //  }
    23  func AxpyUnitaryTo(dst []float64, alpha float64, x, y []float64) {
    24  	for i, v := range x {
    25  		dst[i] = alpha*v + y[i]
    26  	}
    27  }
    28  
    29  // AxpyInc is
    30  //  for i := 0; i < int(n); i++ {
    31  //  	y[iy] += alpha * x[ix]
    32  //  	ix += incX
    33  //  	iy += incY
    34  //  }
    35  func AxpyInc(alpha float64, x, y []float64, n, incX, incY, ix, iy uintptr) {
    36  	for i := 0; i < int(n); i++ {
    37  		y[iy] += alpha * x[ix]
    38  		ix += incX
    39  		iy += incY
    40  	}
    41  }
    42  
    43  // AxpyIncTo is
    44  //  for i := 0; i < int(n); i++ {
    45  //  	dst[idst] = alpha*x[ix] + y[iy]
    46  //  	ix += incX
    47  //  	iy += incY
    48  //  	idst += incDst
    49  //  }
    50  func AxpyIncTo(dst []float64, incDst, idst uintptr, alpha float64, x, y []float64, n, incX, incY, ix, iy uintptr) {
    51  	for i := 0; i < int(n); i++ {
    52  		dst[idst] = alpha*x[ix] + y[iy]
    53  		ix += incX
    54  		iy += incY
    55  		idst += incDst
    56  	}
    57  }