| 109 | |
| 110 | template <typename ElemType> |
| 111 | GbmvPerformanceTest<ElemType>::GbmvPerformanceTest( |
| 112 | BlasFunction fn, |
| 113 | TestParams *params) : PerformanceTest(fn, |
| 114 | (problem_size_t)( ( (((params->order == clblasColumnMajor)? params->N : params->M) * (params->KL + params->KU + 1) // A-access |
| 115 | - (params->KL*(params->KL+1) + params->KU*(params->KU+1)) ) // Substract hole-part for A & X |
| 116 | +((params->transA == clblasNoTrans)? ((params->KL + params->KU + 1) * params->M + 2*params->M) // X & Y access |
| 117 | : ((params->KL + params->KU + 1) * params->N + 2*params->N) ) // X & Y for Trans case |
| 118 | ) * sizeof(ElemType) ) ), |
| 119 | params_(*params), mobjA_(NULL), mobjX_(NULL), mobjY_(NULL) |
| 120 | { |
| 121 | size_t lenA, lenX, lenY; |
| 122 | lenA = ((params_.order == clblasColumnMajor)? params_.N : params_.M) * (params_.lda) + params_.offA; |
| 123 | lenX = (((params_.transA == clblasNoTrans)? params_.N : params_.M) - 1)* params_.incx + 1 + params_.offBX; |
| 124 | lenY = (((params_.transA == clblasNoTrans)? params_.M : 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 | GbmvPerformanceTest<ElemType>::~GbmvPerformanceTest() |
nothing calls this directly
no outgoing calls
no test coverage detected