MCPcopy Create free account
hub / github.com/clMathLibraries/clBLAS / randomSpmvMatrices

Function randomSpmvMatrices

src/tests/include/spmv.h:128–205  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

126
127template <typename T>
128static void
129randomSpmvMatrices(
130 clblasOrder order,
131 clblasUplo uplo,
132 size_t N,
133 bool useAlpha,
134 T *alpha,
135 T *A,
136 T *X,
137 int incx,
138 bool useBeta,
139 T *beta,
140 T *Y,
141 int incy
142 )
143{
144 size_t i, j;
145 size_t lengthX;
146 size_t lengthY;
147 cl_double bound;
148 cl_double fAlpha, fBeta;
149
150 if (!useAlpha) {
151 *alpha = random<T>(100);
152 if (module(*alpha) == 0.0) {
153 *alpha = 1.0;
154 }
155 }
156
157 if (!useBeta) {
158 *beta = random<T>(100);
159 if (module(*beta) == 0.0) {
160 *beta = 1.0;
161 }
162 }
163
164 bound = UPPER_BOUND<T>();
165
166 if(module(*alpha) > bound)
167 *alpha = random<T>((sqrt(bound) / ((2.0) * N)));
168 if (module(*alpha) == 0.0) {
169 *alpha = 1.0;
170 }
171
172 if(module(*beta) > bound)
173 *beta = random<T>((sqrt(bound)));
174 if (module(*beta) == 0.0) {
175 *beta = 1.0;
176 }
177
178 fAlpha = module(*alpha);
179 fBeta = module(*beta);
180
181 bound = bound / (fAlpha * N);
182
183 bound = sqrt( ((((((fBeta * fBeta)) / fAlpha) / (4.0)) / fAlpha) / (N * N)) + bound) - ((fBeta) / ((2.0) * (fAlpha) * N));
184
185

Callers 3

spmvCorrectnessTestFunction · 0.85
prepareMethod · 0.85
generateDataMethod · 0.85

Calls 1

moduleFunction · 0.70

Tested by

no test coverage detected