summaryrefslogtreecommitdiff
path: root/external/clBLAS/src/tests/include/spmv.h
diff options
context:
space:
mode:
Diffstat (limited to 'external/clBLAS/src/tests/include/spmv.h')
-rw-r--r--external/clBLAS/src/tests/include/spmv.h212
1 files changed, 0 insertions, 212 deletions
diff --git a/external/clBLAS/src/tests/include/spmv.h b/external/clBLAS/src/tests/include/spmv.h
deleted file mode 100644
index dce82936..00000000
--- a/external/clBLAS/src/tests/include/spmv.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/* ************************************************************************
- * Copyright 2013 Advanced Micro Devices, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ************************************************************************/
-
-#ifndef SPMV_H_
-#define SPMV_H_
-
-#include <gtest/gtest.h>
-#include <clBLAS.h>
-#include <common.h>
-#include <BlasBase.h>
-#include <blas-random.h>
-#include <ExtraTestSizes.h>
-#include <blas-math.h>
-
-using namespace clMath;
-using ::testing::TestWithParam;
-
-class SPMV : public TestWithParam<
- ::std::tr1::tuple<
- clblasOrder, // order
- clblasUplo, // uplo
- int, // N
- ComplexLong, // Alpha
- ComplexLong, // Beta
- size_t, // offA
- size_t, // offx
- size_t, // offy
- ExtraTestSizes,
- int // numCommandQueues
- > > {
-public:
- void getParams(TestParams *params)
- {
- params->order = order;
- params->uplo = uplo;
- params->seed = seed;
- params->N = N;
- params->lda = lda;
- params->incx = incx;
- params->incy = incy;
- params->offA = offA;
- params->offBX = offx;
- params->offCY = offy;
- params->alpha = paramAlpha;
- params->beta = paramBeta;
- params->numCommandQueues = numCommandQueues;
- }
-
-protected:
- virtual void SetUp()
- {
- ExtraTestSizes extra;
-
- order = ::std::tr1::get<0>(GetParam());
- uplo = ::std::tr1::get<1>(GetParam());
- N = ::std::tr1::get<2>(GetParam());
- paramAlpha = ::std::tr1::get<3>(GetParam());
- paramBeta = ::std::tr1::get<4>(GetParam());
- offA = ::std::tr1::get<5>(GetParam());
- offx = ::std::tr1::get<6>(GetParam());
- offy = ::std::tr1::get<7>(GetParam());
- extra = ::std::tr1::get<8>(GetParam());
- lda = 0;
- incx = extra.strideBX.inc;
- incy = extra.strideCY.inc;
-
- numCommandQueues = ::std::tr1::get<9>(GetParam());
-
- base = ::clMath::BlasBase::getInstance();
- seed = base->seed();
-
- useNumCommandQueues = base->useNumCommandQueues();
- if (useNumCommandQueues) {
- numCommandQueues = base->numCommandQueues();
- }
-
- useAlpha = base->useAlpha();
- if (useAlpha != 0) {
- paramAlpha = base->alpha();
- }
- useBeta = base->useBeta();
- if (useBeta != 0) {
- paramBeta = base->beta();
- }
- if (base->useN()) {
- N = base->N();
- }
- if (base->useIncX()) {
- incx = base->incX();
- }
- if (base->useIncY()) {
- incy = base->incY();
- }
-
- printTestParams(order, uplo, N, paramAlpha, offA,
- 0, offx, incx, paramBeta, offy, incy);
- ::std::cerr << "seed = " << seed << ::std::endl;
- ::std::cerr << "queues = " << numCommandQueues << ::std::endl;
- }
-
- clblasOrder order;
- clblasUplo uplo;
- size_t N;
- size_t lda;
- int incx, incy;
- size_t offA, offx, offy;
- unsigned int seed;
-
- bool useAlpha, useBeta;
- ComplexLong paramAlpha, paramBeta;
-
- ::clMath::BlasBase *base;
- cl_ulong imageA, imageX, imageY;
-
- bool useNumCommandQueues;
- cl_uint numCommandQueues;
-};
-
-template <typename T>
-static void
-randomSpmvMatrices(
- clblasOrder order,
- clblasUplo uplo,
- size_t N,
- bool useAlpha,
- T *alpha,
- T *A,
- T *X,
- int incx,
- bool useBeta,
- T *beta,
- T *Y,
- int incy
- )
-{
- size_t i, j;
- size_t lengthX;
- size_t lengthY;
- cl_double bound;
- cl_double fAlpha, fBeta;
-
- if (!useAlpha) {
- *alpha = random<T>(100);
- if (module(*alpha) == 0.0) {
- *alpha = 1.0;
- }
- }
-
- if (!useBeta) {
- *beta = random<T>(100);
- if (module(*beta) == 0.0) {
- *beta = 1.0;
- }
- }
-
- bound = UPPER_BOUND<T>();
-
- if(module(*alpha) > bound)
- *alpha = random<T>((sqrt(bound) / ((2.0) * N)));
- if (module(*alpha) == 0.0) {
- *alpha = 1.0;
- }
-
- if(module(*beta) > bound)
- *beta = random<T>((sqrt(bound)));
- if (module(*beta) == 0.0) {
- *beta = 1.0;
- }
-
- fAlpha = module(*alpha);
- fBeta = module(*beta);
-
- bound = bound / (fAlpha * N);
-
- bound = sqrt( ((((((fBeta * fBeta)) / fAlpha) / (4.0)) / fAlpha) / (N * N)) + bound) - ((fBeta) / ((2.0) * (fAlpha) * N));
-
-
- for (i = 0; i < N; i++) {
- for (j = 0; j < N; j++) {
- setElementPacked<T>(order, clblasNoTrans, uplo, i, j, A, N, random<T>(bound));
- }
- }
-
-
- lengthX = 1 + ((N - 1) * abs(incx));
- if (X != NULL) {
- for (i = 0; i < lengthX; i++) {
- X[i] = random<T>(bound);
- }
- }
- lengthY = 1 + (N - 1) * abs(incy);
- if (Y != NULL) {
- for (i = 0; i < lengthY; i++) {
- Y[i] = random<T>(bound);
- }
- }
-}
-
-#endif // SPMV_H_