IPSDK
4_1_0_2
IPSDK : Image Processing Software Development Kit
IPSDK_Nightly
include
partner
IPSDKUtil
InstructionSet
Arithmetic
polynomial.h
Go to the documentation of this file.
1
// polynomial.h:
3
// -----------------
4
//
14
15
#ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_POLYNOMIAL_H__
16
#define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_POLYNOMIAL_H__
17
18
#include <
IPSDKUtil/IPSDKUtilExports.h
>
19
20
#include <IPSDKUtil/InstructionSet/Arithmetic/detail/PolynomPack.h>
21
#include <
IPSDKUtil/Tools/ForceInline.h
>
22
23
namespace
ipsdk
{
24
namespace
simd {
25
28
30
31
#define DEFINE_POLYNOMIAL_FUNCTION(N) \
32
template < \
33
eInstructionSet::domain instructionSet, \
34
eInstructionSet::domain instructionSetFma, \
35
class PackT \
36
> \
37
IPSDK_FORCEINLINE \
38
PackT \
39
BOOST_PP_CAT(polynomial, N)(const PackT& in, BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(N), const typename PackT::DataType& c)) \
40
{ \
41
typedef typename PackT::DataType T; \
42
return detail::PolynomPack<instructionSet, instructionSetFma, N, T>::act(in, BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(N), c)); \
43
} \
44
\
45
template < \
46
eInstructionSet::domain instructionSet, \
47
eInstructionSet::domain instructionSetFma, \
48
class PackT> \
49
IPSDK_FORCEINLINE \
50
void \
51
BOOST_PP_CAT(polynomial, N)(const PackT& in1, BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(N), const typename PackT::DataType& c), PackT& out) \
52
{ \
53
typedef typename PackT::DataType T; \
54
detail::PolynomPack<instructionSet, instructionSetFma, N, T>::act(in1, BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(N), c), out); \
55
}
56
57
DEFINE_POLYNOMIAL_FUNCTION
(1)
58
DEFINE_POLYNOMIAL_FUNCTION
(2)
59
DEFINE_POLYNOMIAL_FUNCTION
(3)
60
DEFINE_POLYNOMIAL_FUNCTION
(4)
61
DEFINE_POLYNOMIAL_FUNCTION
(5)
62
DEFINE_POLYNOMIAL_FUNCTION
(6)
63
DEFINE_POLYNOMIAL_FUNCTION
(7)
64
DEFINE_POLYNOMIAL_FUNCTION
(8)
65
DEFINE_POLYNOMIAL_FUNCTION
(9)
66
DEFINE_POLYNOMIAL_FUNCTION
(10)
67
DEFINE_POLYNOMIAL_FUNCTION
(11)
68
DEFINE_POLYNOMIAL_FUNCTION
(12)
69
DEFINE_POLYNOMIAL_FUNCTION
(13)
70
DEFINE_POLYNOMIAL_FUNCTION
(14)
71
DEFINE_POLYNOMIAL_FUNCTION
(15)
72
DEFINE_POLYNOMIAL_FUNCTION
(16)
73
DEFINE_POLYNOMIAL_FUNCTION
(17)
74
DEFINE_POLYNOMIAL_FUNCTION
(18)
75
DEFINE_POLYNOMIAL_FUNCTION
(19)
76
DEFINE_POLYNOMIAL_FUNCTION
(20)
77
80
81
}
// end of namespace simd
82
}
// end of namespace ipsdk
83
84
#endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_POLYNOMIAL_H__
ForceInline.h
Defines the IPSDK_FORCEINLINE.
ipsdk
Main namespace for IPSDK library.
Definition:
AlgorithmFunctionEfficiency.h:22
DEFINE_POLYNOMIAL_FUNCTION
#define DEFINE_POLYNOMIAL_FUNCTION(N)
returns the result of polynomial application on input value x
Definition:
polynomial.h:31
IPSDKUtilExports.h
Definition of import/export macro for library.
Generated on Tue Apr 15 2025 16:20:40 for IPSDK by
1.8.14