3 # Copyright ©2015 The Gonum Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style
5 # license that can be found in the LICENSE file.
8 // Float32 implementations are autogenerated and not directly tested.\
13 echo Generating level1single.go
14 echo -e '// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.\n' > level1single.go
16 | gofmt -r 'blas.Float64Level1 -> blas.Float32Level1' \
18 | gofmt -r 'float64 -> float32' \
19 | gofmt -r 'blas.DrotmParams -> blas.SrotmParams' \
21 | gofmt -r 'f64.AxpyInc -> f32.AxpyInc' \
22 | gofmt -r 'f64.AxpyIncTo -> f32.AxpyIncTo' \
23 | gofmt -r 'f64.AxpyUnitary -> f32.AxpyUnitary' \
24 | gofmt -r 'f64.AxpyUnitaryTo -> f32.AxpyUnitaryTo' \
25 | gofmt -r 'f64.DotUnitary -> f32.DotUnitary' \
26 | gofmt -r 'f64.ScalInc -> f32.ScalInc' \
27 | gofmt -r 'f64.ScalUnitary -> f32.ScalUnitary' \
29 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
31 -e "s_^\(func (Implementation) \)Id\(.*\)\$_$WARNING\1Is\2_" \
32 -e 's_^// Id_// Is_' \
33 -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
34 -e 's_"math"_math "gonum.org/v1/gonum/internal/math32"_' \
37 echo Generating level1single_sdot.go
38 echo -e '// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.\n' > level1single_sdot.go
39 cat level1double_ddot.go \
40 | gofmt -r 'float64 -> float32' \
42 | gofmt -r 'f64.DotInc -> f32.DotInc' \
43 | gofmt -r 'f64.DotUnitary -> f32.DotUnitary' \
45 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
47 -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
48 >> level1single_sdot.go
50 echo Generating level1single_dsdot.go
51 echo -e '// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.\n' > level1single_dsdot.go
52 cat level1double_ddot.go \
53 | gofmt -r '[]float64 -> []float32' \
55 | gofmt -r 'f64.DotInc -> f32.DdotInc' \
56 | gofmt -r 'f64.DotUnitary -> f32.DdotUnitary' \
58 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1Ds\2_" \
60 -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
61 >> level1single_dsdot.go
63 echo Generating level1single_sdsdot.go
64 echo -e '// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.\n' > level1single_sdsdot.go
65 cat level1double_ddot.go \
66 | gofmt -r 'float64 -> float32' \
68 | gofmt -r 'f64.DotInc(x, y, f(n), f(incX), f(incY), f(ix), f(iy)) -> alpha + float32(f32.DdotInc(x, y, f(n), f(incX), f(incY), f(ix), f(iy)))' \
69 | gofmt -r 'f64.DotUnitary(a, b) -> alpha + float32(f32.DdotUnitary(a, b))' \
71 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1Sds\2_" \
72 -e 's_^// D\(.*\)$_// Sds\1 plus a constant_' \
73 -e 's_\\sum_alpha + \\sum_' \
74 -e 's/n int/n int, alpha float32/' \
75 -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
76 >> level1single_sdsdot.go
81 echo Generating level2single.go
82 echo -e '// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.\n' > level2single.go
84 | gofmt -r 'blas.Float64Level2 -> blas.Float32Level2' \
86 | gofmt -r 'float64 -> float32' \
88 | gofmt -r 'Dscal -> Sscal' \
90 | gofmt -r 'f64.AxpyInc -> f32.AxpyInc' \
91 | gofmt -r 'f64.AxpyIncTo -> f32.AxpyIncTo' \
92 | gofmt -r 'f64.AxpyUnitary -> f32.AxpyUnitary' \
93 | gofmt -r 'f64.AxpyUnitaryTo -> f32.AxpyUnitaryTo' \
94 | gofmt -r 'f64.DotInc -> f32.DotInc' \
95 | gofmt -r 'f64.DotUnitary -> f32.DotUnitary' \
97 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
99 -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
105 echo Generating level3single.go
106 echo -e '// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.\n' > level3single.go
107 cat level3double.go \
108 | gofmt -r 'blas.Float64Level3 -> blas.Float32Level3' \
110 | gofmt -r 'float64 -> float32' \
112 | gofmt -r 'f64.AxpyUnitaryTo -> f32.AxpyUnitaryTo' \
113 | gofmt -r 'f64.DotUnitary -> f32.DotUnitary' \
115 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
117 -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
120 echo Generating general_single.go
121 echo -e '// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.\n' > general_single.go
122 cat general_double.go \
123 | gofmt -r 'float64 -> float32' \
125 | gofmt -r 'general64 -> general32' \
126 | gofmt -r 'newGeneral64 -> newGeneral32' \
128 | sed -e 's/(g general64) print()/(g general32) print()/' \
129 -e 's_"math"_math "gonum.org/v1/gonum/internal/math32"_' \
130 -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
133 echo Generating sgemm.go
134 echo -e '// Code generated by "go generate gonum.org/v1/gonum/blas/gonum”; DO NOT EDIT.\n' > sgemm.go
136 | gofmt -r 'float64 -> float32' \
137 | gofmt -r 'general64 -> general32' \
138 | gofmt -r 'sliceView64 -> sliceView32' \
139 | gofmt -r 'checkDMatrix -> checkSMatrix' \
141 | gofmt -r 'dgemmParallel -> sgemmParallel' \
142 | gofmt -r 'computeNumBlocks64 -> computeNumBlocks32' \
143 | gofmt -r 'dgemmSerial -> sgemmSerial' \
144 | gofmt -r 'dgemmSerialNotNot -> sgemmSerialNotNot' \
145 | gofmt -r 'dgemmSerialTransNot -> sgemmSerialTransNot' \
146 | gofmt -r 'dgemmSerialNotTrans -> sgemmSerialNotTrans' \
147 | gofmt -r 'dgemmSerialTransTrans -> sgemmSerialTransTrans' \
149 | gofmt -r 'f64.AxpyInc -> f32.AxpyInc' \
150 | gofmt -r 'f64.AxpyIncTo -> f32.AxpyIncTo' \
151 | gofmt -r 'f64.AxpyUnitaryTo -> f32.AxpyUnitaryTo' \
152 | gofmt -r 'f64.DotUnitary -> f32.DotUnitary' \
154 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
157 -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \