Xmipp  v3.23.11-Nereus
Public Member Functions | List of all members
SVC_Q Class Reference
Inheritance diagram for SVC_Q:
Inheritance graph
[legend]
Collaboration diagram for SVC_Q:
Collaboration graph
[legend]

Public Member Functions

 SVC_Q (const svm_problem &prob, const svm_parameter &param, const schar *y_)
 
Qfloatget_Q (int i, int len) const
 
double * get_QD () const
 
void swap_index (int i, int j) const
 
 ~SVC_Q ()
 
- Public Member Functions inherited from Kernel
 Kernel (int l, svm_node *const *x, const svm_parameter &param)
 
virtual ~Kernel ()
 
- Public Member Functions inherited from QMatrix
virtual ~QMatrix ()
 

Additional Inherited Members

- Static Public Member Functions inherited from Kernel
static double k_function (const svm_node *x, const svm_node *y, const svm_parameter &param)
 
- Protected Attributes inherited from Kernel
double(Kernel::* kernel_function )(int i, int j) const
 

Detailed Description

Definition at line 1272 of file svm.cpp.

Constructor & Destructor Documentation

◆ SVC_Q()

SVC_Q::SVC_Q ( const svm_problem prob,
const svm_parameter param,
const schar y_ 
)
inline

Definition at line 1275 of file svm.cpp.

1276  :Kernel(prob.l, prob.x, param)
1277  {
1278  clone(y,y_,prob.l);
1279  cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20)));
1280  QD = new double[prob.l];
1281  for(int i=0;i<prob.l;i++)
1282  QD[i] = (this->*kernel_function)(i,i);
1283  }
double(Kernel::* kernel_function)(int i, int j) const
Definition: svm.cpp:224
#define i
Definition: svm.cpp:73
double cache_size
Definition: svm.h:43
Kernel(int l, svm_node *const *x, const svm_parameter &param)
Definition: svm.cpp:259
struct svm_node ** x
Definition: svm.h:26
int l
Definition: svm.h:24

◆ ~SVC_Q()

SVC_Q::~SVC_Q ( )
inline

Definition at line 1310 of file svm.cpp.

1311  {
1312  delete[] y;
1313  delete cache;
1314  delete[] QD;
1315  }

Member Function Documentation

◆ get_Q()

Qfloat* SVC_Q::get_Q ( int  i,
int  len 
) const
inlinevirtual

Implements Kernel.

Definition at line 1285 of file svm.cpp.

1286  {
1287  Qfloat *data;
1288  int start, j;
1289  if((start = cache->get_data(i,&data,len)) < len)
1290  {
1291  for(j=start;j<len;j++)
1292  data[j] = (Qfloat)(y[i]*y[j]*(this->*kernel_function)(i,j));
1293  }
1294  return data;
1295  }
int get_data(const int index, Qfloat **data, int len)
Definition: svm.cpp:132
double(Kernel::* kernel_function)(int i, int j) const
Definition: svm.cpp:224
#define i
float Qfloat
Definition: svm.cpp:18
#define j
#define len

◆ get_QD()

double* SVC_Q::get_QD ( ) const
inlinevirtual

Implements Kernel.

Definition at line 1297 of file svm.cpp.

1298  {
1299  return QD;
1300  }

◆ swap_index()

void SVC_Q::swap_index ( int  i,
int  j 
) const
inlinevirtual

Reimplemented from Kernel.

Definition at line 1302 of file svm.cpp.

1303  {
1304  cache->swap_index(i,j);
1306  swap(y[i],y[j]);
1307  swap(QD[i],QD[j]);
1308  }
#define i
virtual void swap_index(int i, int j) const
Definition: svm.cpp:217
#define j
void swap_index(int i, int j)
Definition: svm.cpp:162

The documentation for this class was generated from the following file: