--- /dev/null
+// Copyright ©2016 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 f32
+
+// ScalUnitary is
+// for i := range x {
+// x[i] *= alpha
+// }
+func ScalUnitary(alpha float32, x []float32) {
+ for i := range x {
+ x[i] *= alpha
+ }
+}
+
+// ScalUnitaryTo is
+// for i, v := range x {
+// dst[i] = alpha * v
+// }
+func ScalUnitaryTo(dst []float32, alpha float32, x []float32) {
+ for i, v := range x {
+ dst[i] = alpha * v
+ }
+}
+
+// ScalInc is
+// var ix uintptr
+// for i := 0; i < int(n); i++ {
+// x[ix] *= alpha
+// ix += incX
+// }
+func ScalInc(alpha float32, x []float32, n, incX uintptr) {
+ var ix uintptr
+ for i := 0; i < int(n); i++ {
+ x[ix] *= alpha
+ ix += incX
+ }
+}
+
+// ScalIncTo is
+// var idst, ix uintptr
+// for i := 0; i < int(n); i++ {
+// dst[idst] = alpha * x[ix]
+// ix += incX
+// idst += incDst
+// }
+func ScalIncTo(dst []float32, incDst uintptr, alpha float32, x []float32, n, incX uintptr) {
+ var idst, ix uintptr
+ for i := 0; i < int(n); i++ {
+ dst[idst] = alpha * x[ix]
+ ix += incX
+ idst += incDst
+ }
+}