| 110 | |
| 111 | template <typename ElemType> |
| 112 | SbmvPerformanceTest<ElemType>::SbmvPerformanceTest( |
| 113 | BlasFunction fn, |
| 114 | TestParams *params) : PerformanceTest(fn, |
| 115 | (problem_size_t)( ( (2 * (params->N) * (params->K + 1) // A-access |
| 116 | - (2 * params->K * (params->K+1)) ) // Substract hole-part for A & X |
| 117 | +( ((2*params->K + 1) * params->N + 2*params->N)) // X & Y access |
| 118 | ) * sizeof(ElemType) ) ), |
| 119 | params_(*params), mobjA_(NULL), mobjX_(NULL), mobjY_(NULL) |
| 120 | { |
| 121 | size_t lenA, lenX, lenY; |
| 122 | lenA = params_.N * (params_.lda) + params_.offA; |
| 123 | lenX = params_.N - 1* params_.incx + 1 + params_.offBX; |
| 124 | lenY = params_.N - 1* params_.incy + 1 + params_.offCY; |
| 125 | A_ = new ElemType[ lenA ]; |
| 126 | X_ = new ElemType[ lenX ]; |
| 127 | Y_ = new ElemType[ lenY ]; |
| 128 | backY_ = new ElemType[ lenY ]; |
| 129 | alpha = convertMultiplier<ElemType>(params_.alpha); |
| 130 | beta = convertMultiplier<ElemType>(params_.beta); |
| 131 | |
| 132 | base_ = ::clMath::BlasBase::getInstance(); |
| 133 | |
| 134 | mobjA_ = NULL; |
| 135 | mobjX_ = NULL; |
| 136 | mobjY_ = NULL; |
| 137 | } |
| 138 | |
| 139 | template <typename ElemType> |
| 140 | SbmvPerformanceTest<ElemType>::~SbmvPerformanceTest() |
nothing calls this directly
no outgoing calls
no test coverage detected