reduce add_weighted instantiates for tiny build

This commit is contained in:
Vladislav Vinogradov 2015-03-04 14:57:18 +03:00
parent db25e44a17
commit 87d655325c
2 changed files with 477 additions and 5 deletions

View File

@ -2397,6 +2397,7 @@ namespace arithm
}
template void addWeighted<uchar, uchar, uchar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#ifndef OPENCV_TINY_GPU_MODULE
template void addWeighted<uchar, uchar, schar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<uchar, uchar, ushort>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<uchar, uchar, short>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
@ -2451,9 +2452,10 @@ namespace arithm
template void addWeighted<uchar, double, int>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<uchar, double, float>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<uchar, double, double>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#endif
#ifndef OPENCV_TINY_GPU_MODULE
template void addWeighted<schar, schar, uchar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<schar, schar, schar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<schar, schar, ushort>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
@ -2501,9 +2503,10 @@ namespace arithm
template void addWeighted<schar, double, int>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<schar, double, float>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<schar, double, double>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#endif
#ifndef OPENCV_TINY_GPU_MODULE
template void addWeighted<ushort, ushort, uchar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<ushort, ushort, schar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<ushort, ushort, ushort>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
@ -2543,9 +2546,10 @@ namespace arithm
template void addWeighted<ushort, double, int>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<ushort, double, float>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<ushort, double, double>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#endif
#ifndef OPENCV_TINY_GPU_MODULE
template void addWeighted<short, short, uchar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<short, short, schar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<short, short, ushort>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
@ -2577,9 +2581,10 @@ namespace arithm
template void addWeighted<short, double, int>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<short, double, float>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<short, double, double>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#endif
#ifndef OPENCV_TINY_GPU_MODULE
template void addWeighted<int, int, uchar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<int, int, schar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<int, int, ushort>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
@ -2603,15 +2608,18 @@ namespace arithm
template void addWeighted<int, double, int>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<int, double, float>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<int, double, double>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#endif
#ifndef OPENCV_TINY_GPU_MODULE
template void addWeighted<float, float, uchar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<float, float, schar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<float, float, ushort>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<float, float, short>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<float, float, int>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#endif
template void addWeighted<float, float, float>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#ifndef OPENCV_TINY_GPU_MODULE
template void addWeighted<float, float, double>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<float, double, uchar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
@ -2621,9 +2629,11 @@ namespace arithm
template void addWeighted<float, double, int>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<float, double, float>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<float, double, double>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#endif
#ifndef OPENCV_TINY_GPU_MODULE
template void addWeighted<double, double, uchar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<double, double, schar>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<double, double, ushort>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
@ -2631,6 +2641,7 @@ namespace arithm
template void addWeighted<double, double, int>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<double, double, float>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
template void addWeighted<double, double, double>(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#endif
}
#endif /* CUDA_DISABLER */

View File

@ -3007,6 +3007,466 @@ namespace arithm
void cv::gpu::addWeighted(const GpuMat& src1, double alpha, const GpuMat& src2, double beta, double gamma, GpuMat& dst, int ddepth, Stream& stream)
{
typedef void (*func_t)(PtrStepSzb src1, double alpha, PtrStepSzb src2, double beta, double gamma, PtrStepSzb dst, cudaStream_t stream);
#ifdef OPENCV_TINY_GPU_MODULE
static const func_t funcs[7][7][7] =
{
{
{
arithm::addWeighted<unsigned char, unsigned char, unsigned char >,
0/*arithm::addWeighted<unsigned char, unsigned char, signed char >*/,
0/*arithm::addWeighted<unsigned char, unsigned char, unsigned short>*/,
0/*arithm::addWeighted<unsigned char, unsigned char, short >*/,
0/*arithm::addWeighted<unsigned char, unsigned char, int >*/,
0/*arithm::addWeighted<unsigned char, unsigned char, float >*/,
0/*arithm::addWeighted<unsigned char, unsigned char, double>*/
},
{
0/*arithm::addWeighted<unsigned char, signed char, unsigned char >*/,
0/*arithm::addWeighted<unsigned char, signed char, signed char >*/,
0/*arithm::addWeighted<unsigned char, signed char, unsigned short>*/,
0/*arithm::addWeighted<unsigned char, signed char, short >*/,
0/*arithm::addWeighted<unsigned char, signed char, int >*/,
0/*arithm::addWeighted<unsigned char, signed char, float >*/,
0/*arithm::addWeighted<unsigned char, signed char, double>*/,
},
{
0/*arithm::addWeighted<unsigned char, unsigned short, unsigned char >*/,
0/*arithm::addWeighted<unsigned char, unsigned short, signed char >*/,
0/*arithm::addWeighted<unsigned char, unsigned short, unsigned short>*/,
0/*arithm::addWeighted<unsigned char, unsigned short, short >*/,
0/*arithm::addWeighted<unsigned char, unsigned short, int >*/,
0/*arithm::addWeighted<unsigned char, unsigned short, float >*/,
0/*arithm::addWeighted<unsigned char, unsigned short, double>*/,
},
{
0/*arithm::addWeighted<unsigned char, short, unsigned char >*/,
0/*arithm::addWeighted<unsigned char, short, signed char >*/,
0/*arithm::addWeighted<unsigned char, short, unsigned short>*/,
0/*arithm::addWeighted<unsigned char, short, short >*/,
0/*arithm::addWeighted<unsigned char, short, int >*/,
0/*arithm::addWeighted<unsigned char, short, float >*/,
0/*arithm::addWeighted<unsigned char, short, double>*/,
},
{
0/*arithm::addWeighted<unsigned char, int, unsigned char >*/,
0/*arithm::addWeighted<unsigned char, int, signed char >*/,
0/*arithm::addWeighted<unsigned char, int, unsigned short>*/,
0/*arithm::addWeighted<unsigned char, int, short >*/,
0/*arithm::addWeighted<unsigned char, int, int >*/,
0/*arithm::addWeighted<unsigned char, int, float >*/,
0/*arithm::addWeighted<unsigned char, int, double>*/,
},
{
0/*arithm::addWeighted<unsigned char, float, unsigned char >*/,
0/*arithm::addWeighted<unsigned char, float, signed char >*/,
0/*arithm::addWeighted<unsigned char, float, unsigned short>*/,
0/*arithm::addWeighted<unsigned char, float, short >*/,
0/*arithm::addWeighted<unsigned char, float, int >*/,
0/*arithm::addWeighted<unsigned char, float, float >*/,
0/*arithm::addWeighted<unsigned char, float, double>*/,
},
{
0/*arithm::addWeighted<unsigned char, double, unsigned char >*/,
0/*arithm::addWeighted<unsigned char, double, signed char >*/,
0/*arithm::addWeighted<unsigned char, double, unsigned short>*/,
0/*arithm::addWeighted<unsigned char, double, short >*/,
0/*arithm::addWeighted<unsigned char, double, int >*/,
0/*arithm::addWeighted<unsigned char, double, float >*/,
0/*arithm::addWeighted<unsigned char, double, double>*/,
}
},
{
{
0/*arithm::addWeighted<signed char, unsigned char, unsigned char >*/,
0/*arithm::addWeighted<signed char, unsigned char, signed char >*/,
0/*arithm::addWeighted<signed char, unsigned char, unsigned short>*/,
0/*arithm::addWeighted<signed char, unsigned char, short >*/,
0/*arithm::addWeighted<signed char, unsigned char, int >*/,
0/*arithm::addWeighted<signed char, unsigned char, float >*/,
0/*arithm::addWeighted<signed char, unsigned char, double>*/,
},
{
0/*arithm::addWeighted<signed char, signed char, unsigned char >*/,
0/*arithm::addWeighted<signed char, signed char, signed char >*/,
0/*arithm::addWeighted<signed char, signed char, unsigned short>*/,
0/*arithm::addWeighted<signed char, signed char, short >*/,
0/*arithm::addWeighted<signed char, signed char, int >*/,
0/*arithm::addWeighted<signed char, signed char, float >*/,
0/*arithm::addWeighted<signed char, signed char, double>*/,
},
{
0/*arithm::addWeighted<signed char, unsigned short, unsigned char >*/,
0/*arithm::addWeighted<signed char, unsigned short, signed char >*/,
0/*arithm::addWeighted<signed char, unsigned short, unsigned short>*/,
0/*arithm::addWeighted<signed char, unsigned short, short >*/,
0/*arithm::addWeighted<signed char, unsigned short, int >*/,
0/*arithm::addWeighted<signed char, unsigned short, float >*/,
0/*arithm::addWeighted<signed char, unsigned short, double>*/,
},
{
0/*arithm::addWeighted<signed char, short, unsigned char >*/,
0/*arithm::addWeighted<signed char, short, signed char >*/,
0/*arithm::addWeighted<signed char, short, unsigned short>*/,
0/*arithm::addWeighted<signed char, short, short >*/,
0/*arithm::addWeighted<signed char, short, int >*/,
0/*arithm::addWeighted<signed char, short, float >*/,
0/*arithm::addWeighted<signed char, short, double>*/,
},
{
0/*arithm::addWeighted<signed char, int, unsigned char >*/,
0/*arithm::addWeighted<signed char, int, signed char >*/,
0/*arithm::addWeighted<signed char, int, unsigned short>*/,
0/*arithm::addWeighted<signed char, int, short >*/,
0/*arithm::addWeighted<signed char, int, int >*/,
0/*arithm::addWeighted<signed char, int, float >*/,
0/*arithm::addWeighted<signed char, int, double>*/,
},
{
0/*arithm::addWeighted<signed char, float, unsigned char >*/,
0/*arithm::addWeighted<signed char, float, signed char >*/,
0/*arithm::addWeighted<signed char, float, unsigned short>*/,
0/*arithm::addWeighted<signed char, float, short >*/,
0/*arithm::addWeighted<signed char, float, int >*/,
0/*arithm::addWeighted<signed char, float, float >*/,
0/*arithm::addWeighted<signed char, float, double>*/,
},
{
0/*arithm::addWeighted<signed char, double, unsigned char >*/,
0/*arithm::addWeighted<signed char, double, signed char >*/,
0/*arithm::addWeighted<signed char, double, unsigned short>*/,
0/*arithm::addWeighted<signed char, double, short >*/,
0/*arithm::addWeighted<signed char, double, int >*/,
0/*arithm::addWeighted<signed char, double, float >*/,
0/*arithm::addWeighted<signed char, double, double>*/,
}
},
{
{
0/*arithm::addWeighted<unsigned short, unsigned char, unsigned char >*/,
0/*arithm::addWeighted<unsigned short, unsigned char, signed char >*/,
0/*arithm::addWeighted<unsigned short, unsigned char, unsigned short>*/,
0/*arithm::addWeighted<unsigned short, unsigned char, short >*/,
0/*arithm::addWeighted<unsigned short, unsigned char, int >*/,
0/*arithm::addWeighted<unsigned short, unsigned char, float >*/,
0/*arithm::addWeighted<unsigned short, unsigned char, double>*/,
},
{
0/*arithm::addWeighted<unsigned short, signed char, unsigned char >*/,
0/*arithm::addWeighted<unsigned short, signed char, signed char >*/,
0/*arithm::addWeighted<unsigned short, signed char, unsigned short>*/,
0/*arithm::addWeighted<unsigned short, signed char, short >*/,
0/*arithm::addWeighted<unsigned short, signed char, int >*/,
0/*arithm::addWeighted<unsigned short, signed char, float >*/,
0/*arithm::addWeighted<unsigned short, signed char, double>*/,
},
{
0/*arithm::addWeighted<unsigned short, unsigned short, unsigned char >*/,
0/*arithm::addWeighted<unsigned short, unsigned short, signed char >*/,
0/*arithm::addWeighted<unsigned short, unsigned short, unsigned short>*/,
0/*arithm::addWeighted<unsigned short, unsigned short, short >*/,
0/*arithm::addWeighted<unsigned short, unsigned short, int >*/,
0/*arithm::addWeighted<unsigned short, unsigned short, float >*/,
0/*arithm::addWeighted<unsigned short, unsigned short, double>*/,
},
{
0/*arithm::addWeighted<unsigned short, short, unsigned char >*/,
0/*arithm::addWeighted<unsigned short, short, signed char >*/,
0/*arithm::addWeighted<unsigned short, short, unsigned short>*/,
0/*arithm::addWeighted<unsigned short, short, short >*/,
0/*arithm::addWeighted<unsigned short, short, int >*/,
0/*arithm::addWeighted<unsigned short, short, float >*/,
0/*arithm::addWeighted<unsigned short, short, double>*/,
},
{
0/*arithm::addWeighted<unsigned short, int, unsigned char >*/,
0/*arithm::addWeighted<unsigned short, int, signed char >*/,
0/*arithm::addWeighted<unsigned short, int, unsigned short>*/,
0/*arithm::addWeighted<unsigned short, int, short >*/,
0/*arithm::addWeighted<unsigned short, int, int >*/,
0/*arithm::addWeighted<unsigned short, int, float >*/,
0/*arithm::addWeighted<unsigned short, int, double>*/,
},
{
0/*arithm::addWeighted<unsigned short, float, unsigned char >*/,
0/*arithm::addWeighted<unsigned short, float, signed char >*/,
0/*arithm::addWeighted<unsigned short, float, unsigned short>*/,
0/*arithm::addWeighted<unsigned short, float, short >*/,
0/*arithm::addWeighted<unsigned short, float, int >*/,
0/*arithm::addWeighted<unsigned short, float, float >*/,
0/*arithm::addWeighted<unsigned short, float, double>*/,
},
{
0/*arithm::addWeighted<unsigned short, double, unsigned char >*/,
0/*arithm::addWeighted<unsigned short, double, signed char >*/,
0/*arithm::addWeighted<unsigned short, double, unsigned short>*/,
0/*arithm::addWeighted<unsigned short, double, short >*/,
0/*arithm::addWeighted<unsigned short, double, int >*/,
0/*arithm::addWeighted<unsigned short, double, float >*/,
0/*arithm::addWeighted<unsigned short, double, double>*/,
}
},
{
{
0/*arithm::addWeighted<short, unsigned char, unsigned char >*/,
0/*arithm::addWeighted<short, unsigned char, signed char >*/,
0/*arithm::addWeighted<short, unsigned char, unsigned short>*/,
0/*arithm::addWeighted<short, unsigned char, short >*/,
0/*arithm::addWeighted<short, unsigned char, int >*/,
0/*arithm::addWeighted<short, unsigned char, float >*/,
0/*arithm::addWeighted<short, unsigned char, double>*/,
},
{
0/*arithm::addWeighted<short, signed char, unsigned char >*/,
0/*arithm::addWeighted<short, signed char, signed char >*/,
0/*arithm::addWeighted<short, signed char, unsigned short>*/,
0/*arithm::addWeighted<short, signed char, short >*/,
0/*arithm::addWeighted<short, signed char, int >*/,
0/*arithm::addWeighted<short, signed char, float >*/,
0/*arithm::addWeighted<short, signed char, double>*/,
},
{
0/*arithm::addWeighted<short, unsigned short, unsigned char >*/,
0/*arithm::addWeighted<short, unsigned short, signed char >*/,
0/*arithm::addWeighted<short, unsigned short, unsigned short>*/,
0/*arithm::addWeighted<short, unsigned short, short >*/,
0/*arithm::addWeighted<short, unsigned short, int >*/,
0/*arithm::addWeighted<short, unsigned short, float >*/,
0/*arithm::addWeighted<short, unsigned short, double>*/,
},
{
0/*arithm::addWeighted<short, short, unsigned char >*/,
0/*arithm::addWeighted<short, short, signed char >*/,
0/*arithm::addWeighted<short, short, unsigned short>*/,
0/*arithm::addWeighted<short, short, short >*/,
0/*arithm::addWeighted<short, short, int >*/,
0/*arithm::addWeighted<short, short, float >*/,
0/*arithm::addWeighted<short, short, double>*/,
},
{
0/*arithm::addWeighted<short, int, unsigned char >*/,
0/*arithm::addWeighted<short, int, signed char >*/,
0/*arithm::addWeighted<short, int, unsigned short>*/,
0/*arithm::addWeighted<short, int, short >*/,
0/*arithm::addWeighted<short, int, int >*/,
0/*arithm::addWeighted<short, int, float >*/,
0/*arithm::addWeighted<short, int, double>*/,
},
{
0/*arithm::addWeighted<short, float, unsigned char >*/,
0/*arithm::addWeighted<short, float, signed char >*/,
0/*arithm::addWeighted<short, float, unsigned short>*/,
0/*arithm::addWeighted<short, float, short >*/,
0/*arithm::addWeighted<short, float, int >*/,
0/*arithm::addWeighted<short, float, float >*/,
0/*arithm::addWeighted<short, float, double>*/,
},
{
0/*arithm::addWeighted<short, double, unsigned char >*/,
0/*arithm::addWeighted<short, double, signed char >*/,
0/*arithm::addWeighted<short, double, unsigned short>*/,
0/*arithm::addWeighted<short, double, short >*/,
0/*arithm::addWeighted<short, double, int >*/,
0/*arithm::addWeighted<short, double, float >*/,
0/*arithm::addWeighted<short, double, double>*/,
}
},
{
{
0/*arithm::addWeighted<int, unsigned char, unsigned char >*/,
0/*arithm::addWeighted<int, unsigned char, signed char >*/,
0/*arithm::addWeighted<int, unsigned char, unsigned short>*/,
0/*arithm::addWeighted<int, unsigned char, short >*/,
0/*arithm::addWeighted<int, unsigned char, int >*/,
0/*arithm::addWeighted<int, unsigned char, float >*/,
0/*arithm::addWeighted<int, unsigned char, double>*/,
},
{
0/*arithm::addWeighted<int, signed char, unsigned char >*/,
0/*arithm::addWeighted<int, signed char, signed char >*/,
0/*arithm::addWeighted<int, signed char, unsigned short>*/,
0/*arithm::addWeighted<int, signed char, short >*/,
0/*arithm::addWeighted<int, signed char, int >*/,
0/*arithm::addWeighted<int, signed char, float >*/,
0/*arithm::addWeighted<int, signed char, double>*/,
},
{
0/*arithm::addWeighted<int, unsigned short, unsigned char >*/,
0/*arithm::addWeighted<int, unsigned short, signed char >*/,
0/*arithm::addWeighted<int, unsigned short, unsigned short>*/,
0/*arithm::addWeighted<int, unsigned short, short >*/,
0/*arithm::addWeighted<int, unsigned short, int >*/,
0/*arithm::addWeighted<int, unsigned short, float >*/,
0/*arithm::addWeighted<int, unsigned short, double>*/,
},
{
0/*arithm::addWeighted<int, short, unsigned char >*/,
0/*arithm::addWeighted<int, short, signed char >*/,
0/*arithm::addWeighted<int, short, unsigned short>*/,
0/*arithm::addWeighted<int, short, short >*/,
0/*arithm::addWeighted<int, short, int >*/,
0/*arithm::addWeighted<int, short, float >*/,
0/*arithm::addWeighted<int, short, double>*/,
},
{
0/*arithm::addWeighted<int, int, unsigned char >*/,
0/*arithm::addWeighted<int, int, signed char >*/,
0/*arithm::addWeighted<int, int, unsigned short>*/,
0/*arithm::addWeighted<int, int, short >*/,
0/*arithm::addWeighted<int, int, int >*/,
0/*arithm::addWeighted<int, int, float >*/,
0/*arithm::addWeighted<int, int, double>*/,
},
{
0/*arithm::addWeighted<int, float, unsigned char >*/,
0/*arithm::addWeighted<int, float, signed char >*/,
0/*arithm::addWeighted<int, float, unsigned short>*/,
0/*arithm::addWeighted<int, float, short >*/,
0/*arithm::addWeighted<int, float, int >*/,
0/*arithm::addWeighted<int, float, float >*/,
0/*arithm::addWeighted<int, float, double>*/,
},
{
0/*arithm::addWeighted<int, double, unsigned char >*/,
0/*arithm::addWeighted<int, double, signed char >*/,
0/*arithm::addWeighted<int, double, unsigned short>*/,
0/*arithm::addWeighted<int, double, short >*/,
0/*arithm::addWeighted<int, double, int >*/,
0/*arithm::addWeighted<int, double, float >*/,
0/*arithm::addWeighted<int, double, double>*/,
}
},
{
{
0/*arithm::addWeighted<float, unsigned char, unsigned char >*/,
0/*arithm::addWeighted<float, unsigned char, signed char >*/,
0/*arithm::addWeighted<float, unsigned char, unsigned short>*/,
0/*arithm::addWeighted<float, unsigned char, short >*/,
0/*arithm::addWeighted<float, unsigned char, int >*/,
0/*arithm::addWeighted<float, unsigned char, float >*/,
0/*arithm::addWeighted<float, unsigned char, double>*/,
},
{
0/*arithm::addWeighted<float, signed char, unsigned char >*/,
0/*arithm::addWeighted<float, signed char, signed char >*/,
0/*arithm::addWeighted<float, signed char, unsigned short>*/,
0/*arithm::addWeighted<float, signed char, short >*/,
0/*arithm::addWeighted<float, signed char, int >*/,
0/*arithm::addWeighted<float, signed char, float >*/,
0/*arithm::addWeighted<float, signed char, double>*/,
},
{
0/*arithm::addWeighted<float, unsigned short, unsigned char >*/,
0/*arithm::addWeighted<float, unsigned short, signed char >*/,
0/*arithm::addWeighted<float, unsigned short, unsigned short>*/,
0/*arithm::addWeighted<float, unsigned short, short >*/,
0/*arithm::addWeighted<float, unsigned short, int >*/,
0/*arithm::addWeighted<float, unsigned short, float >*/,
0/*arithm::addWeighted<float, unsigned short, double>*/,
},
{
0/*arithm::addWeighted<float, short, unsigned char >*/,
0/*arithm::addWeighted<float, short, signed char >*/,
0/*arithm::addWeighted<float, short, unsigned short>*/,
0/*arithm::addWeighted<float, short, short >*/,
0/*arithm::addWeighted<float, short, int >*/,
0/*arithm::addWeighted<float, short, float >*/,
0/*arithm::addWeighted<float, short, double>*/,
},
{
0/*arithm::addWeighted<float, int, unsigned char >*/,
0/*arithm::addWeighted<float, int, signed char >*/,
0/*arithm::addWeighted<float, int, unsigned short>*/,
0/*arithm::addWeighted<float, int, short >*/,
0/*arithm::addWeighted<float, int, int >*/,
0/*arithm::addWeighted<float, int, float >*/,
0/*arithm::addWeighted<float, int, double>*/,
},
{
0/*arithm::addWeighted<float, float, unsigned char >*/,
0/*arithm::addWeighted<float, float, signed char >*/,
0/*arithm::addWeighted<float, float, unsigned short>*/,
0/*arithm::addWeighted<float, float, short >*/,
0/*arithm::addWeighted<float, float, int >*/,
arithm::addWeighted<float, float, float >,
0/*arithm::addWeighted<float, float, double>*/,
},
{
0/*arithm::addWeighted<float, double, unsigned char >*/,
0/*arithm::addWeighted<float, double, signed char >*/,
0/*arithm::addWeighted<float, double, unsigned short>*/,
0/*arithm::addWeighted<float, double, short >*/,
0/*arithm::addWeighted<float, double, int >*/,
0/*arithm::addWeighted<float, double, float >*/,
0/*arithm::addWeighted<float, double, double>*/,
}
},
{
{
0/*arithm::addWeighted<double, unsigned char, unsigned char >*/,
0/*arithm::addWeighted<double, unsigned char, signed char >*/,
0/*arithm::addWeighted<double, unsigned char, unsigned short>*/,
0/*arithm::addWeighted<double, unsigned char, short >*/,
0/*arithm::addWeighted<double, unsigned char, int >*/,
0/*arithm::addWeighted<double, unsigned char, float >*/,
0/*arithm::addWeighted<double, unsigned char, double>*/,
},
{
0/*arithm::addWeighted<double, signed char, unsigned char >*/,
0/*arithm::addWeighted<double, signed char, signed char >*/,
0/*arithm::addWeighted<double, signed char, unsigned short>*/,
0/*arithm::addWeighted<double, signed char, short >*/,
0/*arithm::addWeighted<double, signed char, int >*/,
0/*arithm::addWeighted<double, signed char, float >*/,
0/*arithm::addWeighted<double, signed char, double>*/,
},
{
0/*arithm::addWeighted<double, unsigned short, unsigned char >*/,
0/*arithm::addWeighted<double, unsigned short, signed char >*/,
0/*arithm::addWeighted<double, unsigned short, unsigned short>*/,
0/*arithm::addWeighted<double, unsigned short, short >*/,
0/*arithm::addWeighted<double, unsigned short, int >*/,
0/*arithm::addWeighted<double, unsigned short, float >*/,
0/*arithm::addWeighted<double, unsigned short, double>*/,
},
{
0/*arithm::addWeighted<double, short, unsigned char >*/,
0/*arithm::addWeighted<double, short, signed char >*/,
0/*arithm::addWeighted<double, short, unsigned short>*/,
0/*arithm::addWeighted<double, short, short >*/,
0/*arithm::addWeighted<double, short, int >*/,
0/*arithm::addWeighted<double, short, float >*/,
0/*arithm::addWeighted<double, short, double>*/,
},
{
0/*arithm::addWeighted<double, int, unsigned char >*/,
0/*arithm::addWeighted<double, int, signed char >*/,
0/*arithm::addWeighted<double, int, unsigned short>*/,
0/*arithm::addWeighted<double, int, short >*/,
0/*arithm::addWeighted<double, int, int >*/,
0/*arithm::addWeighted<double, int, float >*/,
0/*arithm::addWeighted<double, int, double>*/,
},
{
0/*arithm::addWeighted<double, float, unsigned char >*/,
0/*arithm::addWeighted<double, float, signed char >*/,
0/*arithm::addWeighted<double, float, unsigned short>*/,
0/*arithm::addWeighted<double, float, short >*/,
0/*arithm::addWeighted<double, float, int >*/,
0/*arithm::addWeighted<double, float, float >*/,
0/*arithm::addWeighted<double, float, double>*/,
},
{
0/*arithm::addWeighted<double, double, unsigned char >*/,
0/*arithm::addWeighted<double, double, signed char >*/,
0/*arithm::addWeighted<double, double, unsigned short>*/,
0/*arithm::addWeighted<double, double, short >*/,
0/*arithm::addWeighted<double, double, int >*/,
0/*arithm::addWeighted<double, double, float >*/,
0/*arithm::addWeighted<double, double, double>*/,
}
}
};
#else
static const func_t funcs[7][7][7] =
{
{
@ -3465,6 +3925,7 @@ void cv::gpu::addWeighted(const GpuMat& src1, double alpha, const GpuMat& src2,
}
}
};
#endif
int sdepth1 = src1.depth();
int sdepth2 = src2.depth();