Refactored complex64 functions to asm/c64

This commit is contained in:
Chad Kunde
2016-05-21 14:08:55 -07:00
parent 4a62ad3136
commit 2d1cca9b38
7 changed files with 19 additions and 48 deletions

7
asm/c64/axpy.go Normal file
View File

@@ -0,0 +1,7 @@
// Generated code do not edit. Run `go generate`.
// 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 c64

View File

@@ -2,6 +2,6 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
package asm package c64
func conj(c complex64) complex64 { return complex(real(c), -imag(c)) } func conj(c complex64) complex64 { return complex(real(c), -imag(c)) }

View File

@@ -4,16 +4,16 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
package asm package c64
func CdotcUnitary(x, y []complex64) (sum complex64) { func DotcUnitary(x, y []complex64) (sum complex64) {
for i, v := range x { for i, v := range x {
sum += y[i] * conj(v) sum += y[i] * conj(v)
} }
return return
} }
func CdotcInc(x, y []complex64, n, incX, incY, ix, iy uintptr) (sum complex64) { func DotcInc(x, y []complex64, n, incX, incY, ix, iy uintptr) (sum complex64) {
for i := 0; i < int(n); i++ { for i := 0; i < int(n); i++ {
sum += y[iy] * conj(x[ix]) sum += y[iy] * conj(x[ix])
ix += incX ix += incX

View File

@@ -4,16 +4,16 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
package asm package c64
func CdotuUnitary(x, y []complex64) (sum complex64) { func DotuUnitary(x, y []complex64) (sum complex64) {
for i, v := range x { for i, v := range x {
sum += y[i] * v sum += y[i] * v
} }
return return
} }
func CdotuInc(x, y []complex64, n, incX, incY, ix, iy uintptr) (sum complex64) { func DotuInc(x, y []complex64, n, incX, incY, ix, iy uintptr) (sum complex64) {
for i := 0; i < int(n); i++ { for i := 0; i < int(n); i++ {
sum += y[iy] * x[ix] sum += y[iy] * x[ix]
ix += incX ix += incX

View File

@@ -4,22 +4,22 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
package asm package c64
func CscalUnitary(alpha complex64, x []complex64) { func ScalUnitary(alpha complex64, x []complex64) {
for i := range x { for i := range x {
x[i] *= alpha x[i] *= alpha
} }
} }
func CscalUnitaryTo(dst []complex64, alpha complex64, x []complex64) { func ScalUnitaryTo(dst []complex64, alpha complex64, x []complex64) {
for i, v := range x { for i, v := range x {
dst[i] = alpha * v dst[i] = alpha * v
} }
} }
// incX must be positive. // incX must be positive.
func CscalInc(alpha complex64, x []complex64, n, incX uintptr) { func ScalInc(alpha complex64, x []complex64, n, incX uintptr) {
var ix uintptr var ix uintptr
for i := 0; i < int(n); i++ { for i := 0; i < int(n); i++ {
x[ix] *= alpha x[ix] *= alpha
@@ -28,7 +28,7 @@ func CscalInc(alpha complex64, x []complex64, n, incX uintptr) {
} }
// incDst and incX must be positive. // incDst and incX must be positive.
func CscalIncTo(dst []complex64, incDst uintptr, alpha complex64, x []complex64, n, incX uintptr) { func ScalIncTo(dst []complex64, incDst uintptr, alpha complex64, x []complex64, n, incX uintptr) {
var idst, ix uintptr var idst, ix uintptr
for i := 0; i < int(n); i++ { for i := 0; i < int(n); i++ {
dst[idst] = alpha * x[ix] dst[idst] = alpha * x[ix]

View File

@@ -1,36 +0,0 @@
// Generated code do not edit. Run `go generate`.
// 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 asm
func CaxpyUnitary(alpha complex64, x, y []complex64) {
for i, v := range x {
y[i] += alpha * v
}
}
func CaxpyUnitaryTo(dst []complex64, alpha complex64, x, y []complex64) {
for i, v := range x {
dst[i] = alpha*v + y[i]
}
}
func CaxpyInc(alpha complex64, x, y []complex64, n, incX, incY, ix, iy uintptr) {
for i := 0; i < int(n); i++ {
y[iy] += alpha * x[ix]
ix += incX
iy += incY
}
}
func CaxpyIncTo(dst []complex64, incDst, idst uintptr, alpha complex64, x, y []complex64, n, incX, incY, ix, iy uintptr) {
for i := 0; i < int(n); i++ {
dst[idst] = alpha*x[ix] + y[iy]
ix += incX
iy += incY
idst += incDst
}
}