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

Public Member Functions

 SVR_Q (const svm_problem &prob, const svm_parameter &param)
 
void swap_index (int i, int j) const
 
Qfloatget_Q (int i, int len) const
 
double * get_QD () const
 
 ~SVR_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 1368 of file svm.cpp.

Constructor & Destructor Documentation

◆ SVR_Q()

SVR_Q::SVR_Q ( const svm_problem prob,
const svm_parameter param 
)
inline

Definition at line 1371 of file svm.cpp.

1372  :Kernel(prob.l, prob.x, param)
1373  {
1374  l = prob.l;
1375  cache = new Cache(l,(long int)(param.cache_size*(1<<20)));
1376  QD = new double[2*l];
1377  sign = new schar[2*l];
1378  index = new int[2*l];
1379  for(int k=0;k<l;k++)
1380  {
1381  sign[k] = 1;
1382  sign[k+l] = -1;
1383  index[k] = k;
1384  index[k+l] = k;
1385  QD[k] = (this->*kernel_function)(k,k);
1386  QD[k+l] = QD[k];
1387  }
1388  buffer[0] = new Qfloat[2*l];
1389  buffer[1] = new Qfloat[2*l];
1390  next_buffer = 0;
1391  }
double(Kernel::* kernel_function)(int i, int j) const
Definition: svm.cpp:224
ql0001_ & k(htemp+1),(cvec+1),(atemp+1),(bj+1),(bl+1),(bu+1),(x+1),(clamda+1), &iout, infoqp, &zero,(w+1), &lenw,(iw+1), &leniw, &glob_grd.epsmac
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
float Qfloat
Definition: svm.cpp:18
struct svm_node ** x
Definition: svm.h:26
signed char schar
Definition: svm.cpp:19
int l
Definition: svm.h:24

◆ ~SVR_Q()

SVR_Q::~SVR_Q ( )
inline

Definition at line 1424 of file svm.cpp.

1425  {
1426  delete cache;
1427  delete[] sign;
1428  delete[] index;
1429  delete[] buffer[0];
1430  delete[] buffer[1];
1431  delete[] QD;
1432  }

Member Function Documentation

◆ get_Q()

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

Implements Kernel.

Definition at line 1400 of file svm.cpp.

1401  {
1402  Qfloat *data;
1403  int j, real_i = index[i];
1404  if(cache->get_data(real_i,&data,l) < l)
1405  {
1406  for(j=0;j<l;j++)
1407  data[j] = (Qfloat)(this->*kernel_function)(real_i,j);
1408  }
1409 
1410  // reorder and copy
1411  Qfloat *buf = buffer[next_buffer];
1412  next_buffer = 1 - next_buffer;
1413  schar si = sign[i];
1414  for(j=0;j<len;j++)
1415  buf[j] = (Qfloat) si * (Qfloat) sign[j] * data[index[j]];
1416  return buf;
1417  }
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
signed char schar
Definition: svm.cpp:19

◆ get_QD()

double* SVR_Q::get_QD ( ) const
inlinevirtual

Implements Kernel.

Definition at line 1419 of file svm.cpp.

1420  {
1421  return QD;
1422  }

◆ swap_index()

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

Reimplemented from Kernel.

Definition at line 1393 of file svm.cpp.

1394  {
1395  swap(sign[i],sign[j]);
1396  swap(index[i],index[j]);
1397  swap(QD[i],QD[j]);
1398  }
#define i
#define j

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