@@ -1832,14 +1832,14 @@ static void solve_nu_svr(
1832
1832
1833
1833
static void solve_svdd_l1 (
1834
1834
const PREFIX (problem) *prob, const svm_parameter *param,
1835
- double *alpha, Solver::SolutionInfo* si)
1835
+ double *alpha, Solver::SolutionInfo* si, BlasFunctions *blas_functions )
1836
1836
{
1837
1837
int l = prob->l ;
1838
1838
int i, j;
1839
1839
1840
1840
double r_square;
1841
1841
1842
- ONE_CLASS_Q Q = ONE_CLASS_Q (*prob, *param);
1842
+ ONE_CLASS_Q Q = ONE_CLASS_Q (*prob, *param, blas_functions );
1843
1843
1844
1844
if (param->nu < 1 ) {
1845
1845
// case \nu < 1: the dual problem is
@@ -1981,7 +1981,7 @@ static decision_function svm_train_one(
1981
1981
break ;
1982
1982
case SVDD_L1:
1983
1983
si.upper_bound = Malloc (double ,prob->l );
1984
- solve_svdd_l1 (prob,param,alpha,&si);
1984
+ solve_svdd_l1 (prob,param,alpha,&si,blas_functions );
1985
1985
break ;
1986
1986
}
1987
1987
@@ -2929,7 +2929,7 @@ double PREFIX(predict_values)(const PREFIX(model) *model, const PREFIX(node) *x,
2929
2929
2930
2930
if (model->param .svm_type == SVDD_L1)
2931
2931
{
2932
- double K_xx = NAMESPACE::Kernel::k_function (x,x,model->param ) / 2 ;
2932
+ double K_xx = NAMESPACE::Kernel::k_function (x,x,model->param ,blas_functions ) / 2 ;
2933
2933
for (int i=0 ;i<model->l ;i++)
2934
2934
sum -= sv_coef[i] * K_xx;
2935
2935
}
@@ -3247,7 +3247,8 @@ const char *PREFIX(check_parameter)(const PREFIX(problem) *prob, const svm_param
3247
3247
if (svm_type == C_SVC ||
3248
3248
svm_type == EPSILON_SVR ||
3249
3249
svm_type == NU_SVR ||
3250
- svm_type == ONE_CLASS)
3250
+ svm_type == ONE_CLASS ||
3251
+ svm_type == SVDD_L1)
3251
3252
{
3252
3253
PREFIX (problem) newprob;
3253
3254
// filter samples with negative and null weights
0 commit comments