ocl: svm: restore non BLAS version

This commit is contained in:
Alexander Alekhin 2013-11-05 15:15:26 +04:00
parent 9a63508f50
commit 7704dbf866

View File

@ -994,13 +994,15 @@ void CvSVMKernel_ocl::calc( int vcount, const int row_idx, Qfloat* results, Mat&
//int j; //int j;
(this->*calc_func_ocl)( vcount, row_idx, results, src); (this->*calc_func_ocl)( vcount, row_idx, results, src);
// FIXIT #if defined HAVE_CLAMDBLAS #if !defined(HAVE_CLAMDBLAS)
// nothing
#else
const Qfloat max_val = (Qfloat)(FLT_MAX * 1e-3); const Qfloat max_val = (Qfloat)(FLT_MAX * 1e-3);
int j; int j;
for( j = 0; j < vcount; j++ ) for( j = 0; j < vcount; j++ )
if( results[j] > max_val ) if( results[j] > max_val )
results[j] = max_val; results[j] = max_val;
// FIXIT #endif #endif
} }
bool CvSVMKernel_ocl::create( const CvSVMParams* _params, Calc_ocl _calc_func, Calc _calc_func1 ) bool CvSVMKernel_ocl::create( const CvSVMParams* _params, Calc_ocl _calc_func, Calc _calc_func1 )
@ -1072,12 +1074,13 @@ void CvSVMKernel_ocl::calc_poly( int vcount, const int row_idx, Qfloat* results,
{ {
calc_non_rbf_base( vcount, row_idx, results, src); calc_non_rbf_base( vcount, row_idx, results, src);
//FIXIT #if defined HAVE_CLAMDBLAS #if !defined(HAVE_CLAMDBLAS)
// nothing
#else
CvMat R = cvMat( 1, vcount, QFLOAT_TYPE, results ); CvMat R = cvMat( 1, vcount, QFLOAT_TYPE, results );
if( vcount > 0 ) if( vcount > 0 )
cvPow( &R, &R, params->degree ); cvPow( &R, &R, params->degree );
//FIXIT #endif #endif
} }
@ -1085,7 +1088,9 @@ void CvSVMKernel_ocl::calc_sigmoid( int vcount, const int row_idx, Qfloat* resul
{ {
calc_non_rbf_base( vcount, row_idx, results, src); calc_non_rbf_base( vcount, row_idx, results, src);
// TODO: speedup this // TODO: speedup this
//FIXIT #if defined HAVE_CLAMDBLAS #if !defined(HAVE_CLAMDBLAS)
// nothing
#else
for(int j = 0; j < vcount; j++ ) for(int j = 0; j < vcount; j++ )
{ {
Qfloat t = results[j]; Qfloat t = results[j];
@ -1095,7 +1100,7 @@ void CvSVMKernel_ocl::calc_sigmoid( int vcount, const int row_idx, Qfloat* resul
else else
results[j] = (Qfloat)((e - 1.) / (e + 1.)); results[j] = (Qfloat)((e - 1.) / (e + 1.));
} }
//FIXIT #endif #endif
} }
CvSVM_OCL::CvSVM_OCL() CvSVM_OCL::CvSVM_OCL()