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