github.com/jingcheng-WU/gonum@v0.9.1-0.20210323123734-f1a2a11a8f7b/internal/asm/c128/stubs_amd64.go (about) 1 // Copyright ©2016 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 !noasm,!gccgo,!safe 6 7 package c128 8 9 // AxpyUnitary is 10 // for i, v := range x { 11 // y[i] += alpha * v 12 // } 13 func AxpyUnitary(alpha complex128, x, y []complex128) 14 15 // AxpyUnitaryTo is 16 // for i, v := range x { 17 // dst[i] = alpha*v + y[i] 18 // } 19 func AxpyUnitaryTo(dst []complex128, alpha complex128, x, y []complex128) 20 21 // AxpyInc is 22 // for i := 0; i < int(n); i++ { 23 // y[iy] += alpha * x[ix] 24 // ix += incX 25 // iy += incY 26 // } 27 func AxpyInc(alpha complex128, x, y []complex128, n, incX, incY, ix, iy uintptr) 28 29 // AxpyIncTo is 30 // for i := 0; i < int(n); i++ { 31 // dst[idst] = alpha*x[ix] + y[iy] 32 // ix += incX 33 // iy += incY 34 // idst += incDst 35 // } 36 func AxpyIncTo(dst []complex128, incDst, idst uintptr, alpha complex128, x, y []complex128, n, incX, incY, ix, iy uintptr) 37 38 // DscalUnitary is 39 // for i, v := range x { 40 // x[i] = complex(real(v)*alpha, imag(v)*alpha) 41 // } 42 func DscalUnitary(alpha float64, x []complex128) 43 44 // DscalInc is 45 // var ix uintptr 46 // for i := 0; i < int(n); i++ { 47 // x[ix] = complex(real(x[ix])*alpha, imag(x[ix])*alpha) 48 // ix += inc 49 // } 50 func DscalInc(alpha float64, x []complex128, n, inc uintptr) 51 52 // ScalInc is 53 // var ix uintptr 54 // for i := 0; i < int(n); i++ { 55 // x[ix] *= alpha 56 // ix += incX 57 // } 58 func ScalInc(alpha complex128, x []complex128, n, inc uintptr) 59 60 // ScalUnitary is 61 // for i := range x { 62 // x[i] *= alpha 63 // } 64 func ScalUnitary(alpha complex128, x []complex128) 65 66 // DotcUnitary is 67 // for i, v := range x { 68 // sum += y[i] * cmplx.Conj(v) 69 // } 70 // return sum 71 func DotcUnitary(x, y []complex128) (sum complex128) 72 73 // DotcInc is 74 // for i := 0; i < int(n); i++ { 75 // sum += y[iy] * cmplx.Conj(x[ix]) 76 // ix += incX 77 // iy += incY 78 // } 79 // return sum 80 func DotcInc(x, y []complex128, n, incX, incY, ix, iy uintptr) (sum complex128) 81 82 // DotuUnitary is 83 // for i, v := range x { 84 // sum += y[i] * v 85 // } 86 // return sum 87 func DotuUnitary(x, y []complex128) (sum complex128) 88 89 // DotuInc is 90 // for i := 0; i < int(n); i++ { 91 // sum += y[iy] * x[ix] 92 // ix += incX 93 // iy += incY 94 // } 95 // return sum 96 func DotuInc(x, y []complex128, n, incX, incY, ix, iy uintptr) (sum complex128)