48#include "opencv2/core/cvdef.h"
49#include "opencv2/core/cvstd.hpp"
50#include "opencv2/core/hal/interface.h"
52namespace cv {
namespace hal {
57CV_EXPORTS
int normHamming(
const uchar* a,
int n);
58CV_EXPORTS
int normHamming(
const uchar* a,
const uchar* b,
int n);
60CV_EXPORTS
int normHamming(
const uchar* a,
int n,
int cellSize);
61CV_EXPORTS
int normHamming(
const uchar* a,
const uchar* b,
int n,
int cellSize);
63CV_EXPORTS
int LU32f(
float* A,
size_t astep,
int m,
float* b,
size_t bstep,
int n);
64CV_EXPORTS
int LU64f(
double* A,
size_t astep,
int m,
double* b,
size_t bstep,
int n);
65CV_EXPORTS
bool Cholesky32f(
float* A,
size_t astep,
int m,
float* b,
size_t bstep,
int n);
66CV_EXPORTS
bool Cholesky64f(
double* A,
size_t astep,
int m,
double* b,
size_t bstep,
int n);
67CV_EXPORTS
void SVD32f(
float* At,
size_t astep,
float* W,
float* U,
size_t ustep,
float* Vt,
size_t vstep,
int m,
int n,
int flags);
68CV_EXPORTS
void SVD64f(
double* At,
size_t astep,
double* W,
double* U,
size_t ustep,
double* Vt,
size_t vstep,
int m,
int n,
int flags);
69CV_EXPORTS
int QR32f(
float* A,
size_t astep,
int m,
int n,
int k,
float* b,
size_t bstep,
float* hFactors);
70CV_EXPORTS
int QR64f(
double* A,
size_t astep,
int m,
int n,
int k,
double* b,
size_t bstep,
double* hFactors);
72CV_EXPORTS
void gemm32f(
const float* src1,
size_t src1_step,
const float* src2,
size_t src2_step,
73 float alpha,
const float* src3,
size_t src3_step,
float beta,
float* dst,
size_t dst_step,
74 int m_a,
int n_a,
int n_d,
int flags);
75CV_EXPORTS
void gemm64f(
const double* src1,
size_t src1_step,
const double* src2,
size_t src2_step,
76 double alpha,
const double* src3,
size_t src3_step,
double beta,
double* dst,
size_t dst_step,
77 int m_a,
int n_a,
int n_d,
int flags);
78CV_EXPORTS
void gemm32fc(
const float* src1,
size_t src1_step,
const float* src2,
size_t src2_step,
79 float alpha,
const float* src3,
size_t src3_step,
float beta,
float* dst,
size_t dst_step,
80 int m_a,
int n_a,
int n_d,
int flags);
81CV_EXPORTS
void gemm64fc(
const double* src1,
size_t src1_step,
const double* src2,
size_t src2_step,
82 double alpha,
const double* src3,
size_t src3_step,
double beta,
double* dst,
size_t dst_step,
83 int m_a,
int n_a,
int n_d,
int flags);
85CV_EXPORTS
int normL1_(
const uchar* a,
const uchar* b,
int n);
86CV_EXPORTS
float normL1_(
const float* a,
const float* b,
int n);
87CV_EXPORTS
float normL2Sqr_(
const float* a,
const float* b,
int n);
89CV_EXPORTS
void exp32f(
const float* src,
float* dst,
int n);
90CV_EXPORTS
void exp64f(
const double* src,
double* dst,
int n);
91CV_EXPORTS
void log32f(
const float* src,
float* dst,
int n);
92CV_EXPORTS
void log64f(
const double* src,
double* dst,
int n);
94CV_EXPORTS
void fastAtan32f(
const float* y,
const float* x,
float* dst,
int n,
bool angleInDegrees);
95CV_EXPORTS
void fastAtan64f(
const double* y,
const double* x,
double* dst,
int n,
bool angleInDegrees);
96CV_EXPORTS
void magnitude32f(
const float* x,
const float* y,
float* dst,
int n);
97CV_EXPORTS
void magnitude64f(
const double* x,
const double* y,
double* dst,
int n);
98CV_EXPORTS
void sqrt32f(
const float* src,
float* dst,
int len);
99CV_EXPORTS
void sqrt64f(
const double* src,
double* dst,
int len);
100CV_EXPORTS
void invSqrt32f(
const float* src,
float* dst,
int len);
101CV_EXPORTS
void invSqrt64f(
const double* src,
double* dst,
int len);
103CV_EXPORTS
void split8u(
const uchar* src, uchar** dst,
int len,
int cn );
104CV_EXPORTS
void split16u(
const ushort* src, ushort** dst,
int len,
int cn );
105CV_EXPORTS
void split32s(
const int* src,
int** dst,
int len,
int cn );
106CV_EXPORTS
void split64s(
const int64* src, int64** dst,
int len,
int cn );
108CV_EXPORTS
void merge8u(
const uchar** src, uchar* dst,
int len,
int cn );
109CV_EXPORTS
void merge16u(
const ushort** src, ushort* dst,
int len,
int cn );
110CV_EXPORTS
void merge32s(
const int** src,
int* dst,
int len,
int cn );
111CV_EXPORTS
void merge64s(
const int64** src, int64* dst,
int len,
int cn );
113CV_EXPORTS
void add8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
114CV_EXPORTS
void add8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* );
115CV_EXPORTS
void add16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* );
116CV_EXPORTS
void add16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* );
117CV_EXPORTS
void add32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* );
118CV_EXPORTS
void add32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* );
119CV_EXPORTS
void add64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* );
121CV_EXPORTS
void sub8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
122CV_EXPORTS
void sub8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* );
123CV_EXPORTS
void sub16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* );
124CV_EXPORTS
void sub16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* );
125CV_EXPORTS
void sub32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* );
126CV_EXPORTS
void sub32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* );
127CV_EXPORTS
void sub64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* );
129CV_EXPORTS
void max8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
130CV_EXPORTS
void max8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* );
131CV_EXPORTS
void max16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* );
132CV_EXPORTS
void max16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* );
133CV_EXPORTS
void max32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* );
134CV_EXPORTS
void max32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* );
135CV_EXPORTS
void max64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* );
137CV_EXPORTS
void min8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
138CV_EXPORTS
void min8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* );
139CV_EXPORTS
void min16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* );
140CV_EXPORTS
void min16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* );
141CV_EXPORTS
void min32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* );
142CV_EXPORTS
void min32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* );
143CV_EXPORTS
void min64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* );
145CV_EXPORTS
void absdiff8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
146CV_EXPORTS
void absdiff8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* );
147CV_EXPORTS
void absdiff16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* );
148CV_EXPORTS
void absdiff16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* );
149CV_EXPORTS
void absdiff32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* );
150CV_EXPORTS
void absdiff32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* );
151CV_EXPORTS
void absdiff64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* );
153CV_EXPORTS
void and8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
154CV_EXPORTS
void or8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
155CV_EXPORTS
void xor8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
156CV_EXPORTS
void not8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* );
158CV_EXPORTS
void cmp8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* _cmpop);
159CV_EXPORTS
void cmp8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* _cmpop);
160CV_EXPORTS
void cmp16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* _cmpop);
161CV_EXPORTS
void cmp16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* _cmpop);
162CV_EXPORTS
void cmp32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* _cmpop);
163CV_EXPORTS
void cmp32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* _cmpop);
164CV_EXPORTS
void cmp64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* _cmpop);
166CV_EXPORTS
void mul8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* scale);
167CV_EXPORTS
void mul8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* scale);
168CV_EXPORTS
void mul16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* scale);
169CV_EXPORTS
void mul16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* scale);
170CV_EXPORTS
void mul32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* scale);
171CV_EXPORTS
void mul32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* scale);
172CV_EXPORTS
void mul64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* scale);
174CV_EXPORTS
void div8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* scale);
175CV_EXPORTS
void div8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* scale);
176CV_EXPORTS
void div16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* scale);
177CV_EXPORTS
void div16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* scale);
178CV_EXPORTS
void div32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* scale);
179CV_EXPORTS
void div32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* scale);
180CV_EXPORTS
void div64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* scale);
182CV_EXPORTS
void recip8u(
const uchar *,
size_t,
const uchar * src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* scale);
183CV_EXPORTS
void recip8s(
const schar *,
size_t,
const schar * src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* scale);
184CV_EXPORTS
void recip16u(
const ushort *,
size_t,
const ushort * src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* scale);
185CV_EXPORTS
void recip16s(
const short *,
size_t,
const short * src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* scale);
186CV_EXPORTS
void recip32s(
const int *,
size_t,
const int * src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* scale);
187CV_EXPORTS
void recip32f(
const float *,
size_t,
const float * src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* scale);
188CV_EXPORTS
void recip64f(
const double *,
size_t,
const double * src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* scale);
190CV_EXPORTS
void addWeighted8u(
const uchar* src1,
size_t step1,
const uchar* src2,
size_t step2, uchar* dst,
size_t step,
int width,
int height,
void* _scalars );
191CV_EXPORTS
void addWeighted8s(
const schar* src1,
size_t step1,
const schar* src2,
size_t step2, schar* dst,
size_t step,
int width,
int height,
void* scalars );
192CV_EXPORTS
void addWeighted16u(
const ushort* src1,
size_t step1,
const ushort* src2,
size_t step2, ushort* dst,
size_t step,
int width,
int height,
void* scalars );
193CV_EXPORTS
void addWeighted16s(
const short* src1,
size_t step1,
const short* src2,
size_t step2,
short* dst,
size_t step,
int width,
int height,
void* scalars );
194CV_EXPORTS
void addWeighted32s(
const int* src1,
size_t step1,
const int* src2,
size_t step2,
int* dst,
size_t step,
int width,
int height,
void* scalars );
195CV_EXPORTS
void addWeighted32f(
const float* src1,
size_t step1,
const float* src2,
size_t step2,
float* dst,
size_t step,
int width,
int height,
void* scalars );
196CV_EXPORTS
void addWeighted64f(
const double* src1,
size_t step1,
const double* src2,
size_t step2,
double* dst,
size_t step,
int width,
int height,
void* scalars );
198CV_EXPORTS
void cvt16f32f(
const float16_t* src,
float* dst,
int len );
199CV_EXPORTS
void cvt32f16f(
const float* src, float16_t* dst,
int len );
201CV_EXPORTS
void addRNGBias32f(
float* arr,
const float* scaleBiasPairs,
int len );
202CV_EXPORTS
void addRNGBias64f(
double* arr,
const double* scaleBiasPairs,
int len );
206 static Ptr<DFT1D> create(
int len,
int count,
int depth,
int flags,
bool * useBuffer = 0);
207 virtual void apply(
const uchar *src, uchar *dst) = 0;
213 static Ptr<DFT2D> create(
int width,
int height,
int depth,
214 int src_channels,
int dst_channels,
215 int flags,
int nonzero_rows = 0);
216 virtual void apply(
const uchar *src_data,
size_t src_step, uchar *dst_data,
size_t dst_step) = 0;
222 static Ptr<DCT2D> create(
int width,
int height,
int depth,
int flags);
223 virtual void apply(
const uchar *src_data,
size_t src_step, uchar *dst_data,
size_t dst_step) = 0;
234CV_EXPORTS
int LU(
float* A,
size_t astep,
int m,
float* b,
size_t bstep,
int n);
235CV_EXPORTS
int LU(
double* A,
size_t astep,
int m,
double* b,
size_t bstep,
int n);
236CV_EXPORTS
bool Cholesky(
float* A,
size_t astep,
int m,
float* b,
size_t bstep,
int n);
237CV_EXPORTS
bool Cholesky(
double* A,
size_t astep,
int m,
double* b,
size_t bstep,
int n);
239CV_EXPORTS
void exp(
const float* src,
float* dst,
int n);
240CV_EXPORTS
void exp(
const double* src,
double* dst,
int n);
241CV_EXPORTS
void log(
const float* src,
float* dst,
int n);
242CV_EXPORTS
void log(
const double* src,
double* dst,
int n);
244CV_EXPORTS
void fastAtan2(
const float* y,
const float* x,
float* dst,
int n,
bool angleInDegrees);
245CV_EXPORTS
void magnitude(
const float* x,
const float* y,
float* dst,
int n);
246CV_EXPORTS
void magnitude(
const double* x,
const double* y,
double* dst,
int n);
247CV_EXPORTS
void sqrt(
const float* src,
float* dst,
int len);
248CV_EXPORTS
void sqrt(
const double* src,
double* dst,
int len);
249CV_EXPORTS
void invSqrt(
const float* src,
float* dst,
int len);
250CV_EXPORTS
void invSqrt(
const double* src,
double* dst,
int len);
CV_EXPORTS_W void sqrt(InputArray src, OutputArray dst)
Calculates a square root of array elements.
CV_EXPORTS_W void exp(InputArray src, OutputArray dst)
Calculates the exponent of every array element.
CV_EXPORTS_W void magnitude(InputArray x, InputArray y, OutputArray magnitude)
Calculates the magnitude of 2D vectors.
CV_EXPORTS_W void log(InputArray src, OutputArray dst)
Calculates the natural logarithm of every array element.
CV_EXPORTS int LU(float *A, size_t astep, int m, float *b, size_t bstep, int n)
CV_EXPORTS_W float fastAtan2(float y, float x)
Calculates the angle of a 2D vector in degrees.
CV_EXPORTS bool Cholesky(float *A, size_t astep, int m, float *b, size_t bstep, int n)
"black box" representation of the file storage associated with a file on disk.
Definition: aruco.hpp:75
Definition: cvstd_wrapper.hpp:74
Definition: core/hal/hal.hpp:221
Definition: core/hal/hal.hpp:205
Definition: core/hal/hal.hpp:212