OSDN Git Service

new repo
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / blas / gonum / single_precision.bash
1 #!/usr/bin/env bash
2
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.
6
7 WARNING='//\
8 // Float32 implementations are autogenerated and not directly tested.\
9 '
10
11 # Level1 routines.
12
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
15 cat level1double.go \
16 | gofmt -r 'blas.Float64Level1 -> blas.Float32Level1' \
17 \
18 | gofmt -r 'float64 -> float32' \
19 | gofmt -r 'blas.DrotmParams -> blas.SrotmParams' \
20 \
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' \
28 \
29 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
30       -e 's_^// D_// S_' \
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"_' \
35 >> level1single.go
36
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' \
41 \
42 | gofmt -r 'f64.DotInc -> f32.DotInc' \
43 | gofmt -r 'f64.DotUnitary -> f32.DotUnitary' \
44 \
45 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
46       -e 's_^// D_// S_' \
47       -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
48 >> level1single_sdot.go
49
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' \
54 \
55 | gofmt -r 'f64.DotInc -> f32.DdotInc' \
56 | gofmt -r 'f64.DotUnitary -> f32.DdotUnitary' \
57 \
58 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1Ds\2_" \
59       -e 's_^// D_// Ds_' \
60       -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
61 >> level1single_dsdot.go
62
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' \
67 \
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))' \
70 \
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
77
78
79 # Level2 routines.
80
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
83 cat level2double.go \
84 | gofmt -r 'blas.Float64Level2 -> blas.Float32Level2' \
85 \
86 | gofmt -r 'float64 -> float32' \
87 \
88 | gofmt -r 'Dscal -> Sscal' \
89 \
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' \
96 \
97 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
98       -e 's_^// D_// S_' \
99       -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
100 >> level2single.go
101
102
103 # Level3 routines.
104
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' \
109 \
110 | gofmt -r 'float64 -> float32' \
111 \
112 | gofmt -r 'f64.AxpyUnitaryTo -> f32.AxpyUnitaryTo' \
113 | gofmt -r 'f64.DotUnitary -> f32.DotUnitary' \
114 \
115 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
116       -e 's_^// D_// S_' \
117       -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
118 >> level3single.go
119
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' \
124 \
125 | gofmt -r 'general64 -> general32' \
126 | gofmt -r 'newGeneral64 -> newGeneral32' \
127 \
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"_' \
131 >> general_single.go
132
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
135 cat dgemm.go \
136 | gofmt -r 'float64 -> float32' \
137 | gofmt -r 'general64 -> general32' \
138 | gofmt -r 'sliceView64 -> sliceView32' \
139 | gofmt -r 'checkDMatrix -> checkSMatrix' \
140 \
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' \
148 \
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' \
153 \
154 | sed -e "s_^\(func (Implementation) \)D\(.*\)\$_$WARNING\1S\2_" \
155       -e 's_^// D_// S_' \
156       -e 's_^// d_// s_' \
157       -e 's_"gonum.org/v1/gonum/internal/asm/f64"_"gonum.org/v1/gonum/internal/asm/f32"_' \
158 >> sgemm.go