namespace avx {
// typedefs
typedef std::integral_constant<int, 3> C3;
typedef std::integral_constant<int, 4> C4;
// global functions
CV_ALWAYS_INLINE void main_computation_horizontalPass_lpi4(
const v_uint8& val_0,
const v_uint8& val_1,
const v_uint8& val_2,
const v_uint8& val_3,
const v_int16& a10,
const v_int16& a32,
const v_int16& a54,
const v_int16& a76,
v_uint8& shuf_mask1,
v_uint8& shuf_mask2,
v_uint8& res1,
v_uint8& res2
);
CV_ALWAYS_INLINE void verticalPass_lpi4_8U(
const uint8_t \* src0[],
const uint8_t \* src1[],
uint8_t tmp[],
const short beta[],
const int& length
);
CV_ALWAYS_INLINE v_uint8 setHorizontalShufMask1();
CV_ALWAYS_INLINE v_uint8 setHorizontalShufMask2();
CV_ALWAYS_INLINE void verticalPass_anylpi_8U(
const uint8_t \* src0[],
const uint8_t \* src1[],
uint8_t tmp[],
const int& beta0,
const int l,
const int length1,
const int length2
);
template <int chanNum>
CV_ALWAYS_INLINE bool calcRowLinear_8UC_Impl(
avx2_tag,
std::array<std::array<uint8_t \*, 4>, chanNum>& dst,
const uint8_t \* src0[],
const uint8_t \* src1[],
const short alpha[],
const short clone[],
const short mapsx[],
const short beta[],
uint8_t tmp[],
const Size& inSz,
const Size& outSz,
const int lpi
);
CV_ALWAYS_INLINE void horizontalPass_lpi4_8UC1(
const short clone[],
const short mapsx[],
uint8_t tmp[],
uint8_t \* dst[],
const int& length
);
CV_ALWAYS_INLINE void horizontalPass_anylpi_8U(
const short alpha[],
const short mapsx[],
uint8_t \* dst[],
const uchar tmp[],
const int l,
const int length
);
void calcRowArea_8U(
uchar dst[],
const uchar \* src[],
const Size& inSz,
const Size& outSz,
Q0_16 yalpha,
const MapperUnit8U& ymap,
int xmaxdf,
const short xindex[],
const Q0_16 xalpha[],
Q8_8 vbuf[]
);
void calcRowArea_32F(
float dst[],
const float \* src[],
const Size& inSz,
const Size& outSz,
float yalpha,
const MapperUnit32F& ymap,
int xmaxdf,
const int xindex[],
const float xalpha[],
float vbuf[]
);
} // namespace avx