1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-30 07:43:03 +04:00

eliminate unnecessary double arithmetics in CUDA

This commit is contained in:
Vladislav Vinogradov
2013-05-30 13:10:11 +04:00
parent 0b270e2b08
commit cd2b7448f4
9 changed files with 26 additions and 17 deletions
+4 -4
View File
@@ -137,10 +137,10 @@ typedef unsigned char uchar;
template<bool isDefaultNum>
__device__ __forceinline__ int fast_angle_bin(const float& dx, const float& dy)
{
const float angle_quantum = CV_PI / 6.f;
const float angle_quantum = CV_PI_F / 6.f;
float angle = atan2(dx, dy) + (angle_quantum / 2.f);
if (angle < 0) angle += CV_PI;
if (angle < 0) angle += CV_PI_F;
const float angle_scaling = 1.f / angle_quantum;
return static_cast<int>(angle * angle_scaling) % 6;
@@ -174,8 +174,8 @@ typedef unsigned char uchar;
{
int i = 3;
float2 bin_vector_i;
bin_vector_i.x = ::cos(i * (CV_PI / 6.f));
bin_vector_i.y = ::sin(i * (CV_PI / 6.f));
bin_vector_i.x = ::cos(i * (CV_PI_F / 6.f));
bin_vector_i.y = ::sin(i * (CV_PI_F / 6.f));
const float dot_product = fabs(dx * bin_vector_i.x + dy * bin_vector_i.y);
if(dot_product > max_dot)