@@ -1840,14 +1840,14 @@ static void solve_nu_svr(
1840
1840
1841
1841
static void solve_svdd_l1 (
1842
1842
const PREFIX (problem) *prob, const svm_parameter *param,
1843
- double *alpha, Solver::SolutionInfo* si)
1843
+ double *alpha, Solver::SolutionInfo* si, BlasFunctions *blas_functions )
1844
1844
{
1845
1845
int l = prob->l ;
1846
1846
int i, j;
1847
1847
1848
1848
double r_square;
1849
1849
1850
- ONE_CLASS_Q Q = ONE_CLASS_Q (*prob, *param);
1850
+ ONE_CLASS_Q Q = ONE_CLASS_Q (*prob, *param, blas_functions );
1851
1851
1852
1852
if (param->nu < 1 ) {
1853
1853
// case \nu < 1: the dual problem is
@@ -1990,7 +1990,7 @@ static decision_function svm_train_one(
1990
1990
break ;
1991
1991
case SVDD_L1:
1992
1992
si.upper_bound = Malloc (double ,prob->l );
1993
- solve_svdd_l1 (prob,param,alpha,&si);
1993
+ solve_svdd_l1 (prob,param,alpha,&si,blas_functions );
1994
1994
break ;
1995
1995
}
1996
1996
@@ -2945,7 +2945,7 @@ double PREFIX(predict_values)(const PREFIX(model) *model, const PREFIX(node) *x,
2945
2945
2946
2946
if (model->param .svm_type == SVDD_L1)
2947
2947
{
2948
- double K_xx = NAMESPACE::Kernel::k_function (x,x,model->param ) / 2 ;
2948
+ double K_xx = NAMESPACE::Kernel::k_function (x,x,model->param ,blas_functions ) / 2 ;
2949
2949
for (int i=0 ;i<model->l ;i++)
2950
2950
sum -= sv_coef[i] * K_xx;
2951
2951
}
@@ -3266,7 +3266,8 @@ const char *PREFIX(check_parameter)(const PREFIX(problem) *prob, const svm_param
3266
3266
if (svm_type == C_SVC ||
3267
3267
svm_type == EPSILON_SVR ||
3268
3268
svm_type == NU_SVR ||
3269
- svm_type == ONE_CLASS)
3269
+ svm_type == ONE_CLASS ||
3270
+ svm_type == SVDD_L1)
3270
3271
{
3271
3272
PREFIX (problem) newprob;
3272
3273
// filter samples with negative and null weights
0 commit comments