@@ -86,26 +86,30 @@ function Functors.functor(::Type{<:PolynomialKernel}, x)
86
86
return (c= x. c,), reconstruct_polynomialkernel
87
87
end
88
88
89
- @noinline __make_polynomial_kappa (degree) = (c:: Real , xᵀy:: Real ) -> (xᵀy + c)^ degree
89
+ struct _PolynomialKappa
90
+ degree:: Int
91
+ end
92
+
93
+ (κ:: _PolynomialKappa )(c:: Real , xᵀy:: Real ) = (xᵀy + c)^ κ. degree
90
94
91
- kappa (κ:: PolynomialKernel , xᵀy:: Real ) = __make_polynomial_kappa (κ. degree)(only (κ. c), xᵀy)
95
+ kappa (κ:: PolynomialKernel , xᵀy:: Real ) = _PolynomialKappa (κ. degree)(only (κ. c), xᵀy)
92
96
93
97
metric (:: PolynomialKernel ) = DotProduct ()
94
98
95
99
function kernelmatrix (k:: PolynomialKernel , x:: AbstractVector , y:: AbstractVector )
96
- return __make_polynomial_kappa (k. degree).(only (k. c), pairwise (metric (k), x, y))
100
+ return _PolynomialKappa (k. degree).(only (k. c), pairwise (metric (k), x, y))
97
101
end
98
102
99
103
function kernelmatrix (k:: PolynomialKernel , x:: AbstractVector )
100
- return __make_polynomial_kappa (k. degree).(only (k. c), pairwise (metric (k), x))
104
+ return _PolynomialKappa (k. degree).(only (k. c), pairwise (metric (k), x))
101
105
end
102
106
103
107
function kernelmatrix_diag (k:: PolynomialKernel , x:: AbstractVector , y:: AbstractVector )
104
- return __make_polynomial_kappa (k. degree).(only (k. c), colwise (metric (k), x, y))
108
+ return _PolynomialKappa (k. degree).(only (k. c), colwise (metric (k), x, y))
105
109
end
106
110
107
111
function kernelmatrix_diag (k:: PolynomialKernel , x:: AbstractVector )
108
- return __make_polynomial_kappa (k. degree).(only (k. c), colwise (metric (k), x))
112
+ return _PolynomialKappa (k. degree).(only (k. c), colwise (metric (k), x))
109
113
end
110
114
111
115
function Base. show (io:: IO , κ:: PolynomialKernel )
0 commit comments