Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float ssei[16];
- __m128 *pivot = (__m128*) ssei;
- __m128 *local = (__m128*) &ssei[4];
- __m128 *diff = (__m128*) &ssei[8];
- __m128 *rmul = (__m128*) &ssei[12];
- for(int i=0; i<16; i++)
- ssei[i] = 0.0f;
- #ifdef USE_OPENMP
- #pragma omp parallel for
- #endif
- for (int VOut = totalSizeV - 1; VOut > endVOut; VOut--)
- {
- for (int HOut = beginHOut; HOut < endHOut; HOut++)
- {
- ssei[0] = data[VOut * totalSizeH + HOut];//
- ssei[1] = data[(VOut * totalSizeH + HOut) + globalSize];//
- ssei[2] = data[(VOut * totalSizeH + HOut) + 2 * globalSize];//
- int rowSize = (int) (100.0f / ssei[2]);//
- if (rowSize > 128)
- rowSize = 128;
- if (rowSize < 11)
- rowSize = 11;
- localSizeV = localSizeH = rowSize;
- int partSize = rowSize / 2;
- for (int VIn = VOut - localSizeV; VIn <= VOut; VIn++)
- {
- for (int HIn = HOut - partSize; HIn < partSize + HOut; HIn++)
- {
- ssei[4] = data[VIn * totalSizeH + HIn];//
- ssei[5] = data[(VIn * totalSizeH + HIn) + globalSize];//
- ssei[6] = data[(VIn * totalSizeH + HIn) + 2 * globalSize];//
- ssei[9] = ssei[5] - ssei[1];//
- //*diff = _mm_sub_ps(local, pivot);
- if (ssei[9] > hmin && ssei[9] < hmax)
- {
- ssei[8] = ssei[4] - ssei[0];//
- ssei[10] = ssei[6] - ssei[2];//
- //*rmul = _mm_mul_ps(*diff, *diff);
- float norm = fastSqrt_Q3(ssei[8]*ssei[8] + ssei[9]*ssei[9] + ssei[10]*ssei[10]);//
- float cosAlpha = ssei[9]/ norm;//
- if (cosAlpha > cosalpha)
- img[VIn * totalSizeH + HIn] = 1;
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment