follow other interface

* remove useHW option
  * update test
pull/6830/head
Tomoaki Teshima 9 years ago
parent b2ad7cd9c0
commit eccf2fa4c3
  1. 2
      modules/core/include/opencv2/core.hpp
  2. 5
      modules/core/src/convert.cpp
  3. 18
      modules/core/test/test_arithm.cpp

@ -533,7 +533,7 @@ CV_16S to represent the bit depth. If the input array is neither of them, it'll
@param dst output array.
@param useHW if possible use HW SIMD instruction to convert
*/
CV_EXPORTS_W void convertFp16(InputArray src, OutputArray dst, bool useHW = true);
CV_EXPORTS_W void convertFp16(InputArray src, OutputArray dst);
/** @brief Performs a look-up table transform of an array.

@ -5117,9 +5117,10 @@ void cv::convertScaleAbs( InputArray _src, OutputArray _dst, double alpha, doubl
}
}
void cv::convertFp16( InputArray _src, OutputArray _dst, bool useHW )
void cv::convertFp16( InputArray _src, OutputArray _dst)
{
if ( checkHardwareSupport(CV_CPU_FP16) == false)
bool useHW = true;
if ( checkHardwareSupport(CV_CPU_FP16) == false )
{
useHW = false;
}

@ -742,27 +742,29 @@ struct ConvertScaleFp16Op : public BaseElemWiseOp
ConvertScaleFp16Op() : BaseElemWiseOp(1, FIX_BETA+REAL_GAMMA, 1, 1, Scalar::all(0)), nextRange(0) { }
void op(const vector<Mat>& src, Mat& dst, const Mat&)
{
convertFp16(src[0], dst, true);
Mat m;
convertFp16(src[0], m);
convertFp16(m, dst);
}
void refop(const vector<Mat>& src, Mat& dst, const Mat&)
{
convertFp16(src[0], dst, false);
cvtest::copy(src[0], dst);
}
int getRandomType(RNG&)
{
// 0: FP32 -> FP16
// 1: FP16 -> FP32
// 0: FP32 -> FP16 -> FP32
// 1: FP16 -> FP32 -> FP16
int srctype = (nextRange & 1) == 0 ? CV_32F : CV_16S;
return srctype;
}
void getValueRange(int, double& minval, double& maxval)
{
// 0: FP32 -> FP16
// 1: FP16 -> FP32
// 0: FP32 -> FP16 -> FP32
// 1: FP16 -> FP32 -> FP16
if( (nextRange & 1) == 0 )
{
// largest integer number that fp16 can express
maxval = 65504.f;
// largest integer number that fp16 can express exactly
maxval = 2048.f;
minval = -maxval;
}
else

Loading…
Cancel
Save