Hugintrunk  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
celeste::Solver Class Reference
Inheritance diagram for celeste::Solver:
Inheritance graph

Classes

struct  SolutionInfo
 

Public Member Functions

 Solver ()
 
virtual ~Solver ()
 
void Solve (int l, const QMatrix &Q, const double *p_, const schar *y_, double *alpha_, double Cp, double Cn, double eps, SolutionInfo *si, int shrinking)
 

Protected Types

enum  { LOWER_BOUND, UPPER_BOUND, FREE }
 

Protected Member Functions

double get_C (int i)
 
void update_alpha_status (int i)
 
bool is_upper_bound (int i)
 
bool is_lower_bound (int i)
 
bool is_free (int i)
 
void swap_index (int i, int j)
 
void reconstruct_gradient ()
 
virtual int select_working_set (int &i, int &j)
 
virtual double calculate_rho ()
 
virtual void do_shrinking ()
 

Protected Attributes

int active_size
 
schary
 
double * G
 
char * alpha_status
 
double * alpha
 
const QMatrixQ
 
const double * QD
 
double eps
 
double Cp
 
double Cn
 
double * p
 
int * active_set
 
double * G_bar
 
int l
 
bool unshrink
 

Private Member Functions

bool be_shrunk (int i, double Gmax1, double Gmax2)
 

Detailed Description

Definition at line 440 of file svm.cpp.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
LOWER_BOUND 
UPPER_BOUND 
FREE 

Definition at line 460 of file svm.cpp.

Constructor & Destructor Documentation

celeste::Solver::Solver ( )
inline

Definition at line 442 of file svm.cpp.

virtual celeste::Solver::~Solver ( )
inlinevirtual

Definition at line 443 of file svm.cpp.

Member Function Documentation

bool celeste::Solver::be_shrunk ( int  i,
double  Gmax1,
double  Gmax2 
)
private

Definition at line 932 of file svm.cpp.

References G, is_lower_bound(), is_upper_bound(), and y.

Referenced by do_shrinking().

double celeste::Solver::calculate_rho ( )
protectedvirtual

Reimplemented in celeste::Solver_NU.

Definition at line 1013 of file svm.cpp.

References active_size, G, INF, is_lower_bound(), is_upper_bound(), celeste::max(), celeste::min(), and y.

Referenced by Solve().

void celeste::Solver::do_shrinking ( )
protectedvirtual

Reimplemented in celeste::Solver_NU.

Definition at line 952 of file svm.cpp.

References active_size, be_shrunk(), eps, G, INF, celeste::info(), is_lower_bound(), is_upper_bound(), l, reconstruct_gradient(), swap_index(), unshrink, and y.

Referenced by Solve().

double celeste::Solver::get_C ( int  i)
inlineprotected

Definition at line 473 of file svm.cpp.

References Cn, Cp, and y.

Referenced by Solve(), and update_alpha_status().

bool celeste::Solver::is_free ( int  i)
inlineprotected

Definition at line 487 of file svm.cpp.

References alpha_status, and FREE.

Referenced by reconstruct_gradient().

bool celeste::Solver::is_lower_bound ( int  i)
inlineprotected
bool celeste::Solver::is_upper_bound ( int  i)
inlineprotected
void celeste::Solver::reconstruct_gradient ( )
protected
int celeste::Solver::select_working_set ( int &  i,
int &  j 
)
protectedvirtual

Reimplemented in celeste::Solver_NU.

Definition at line 833 of file svm.cpp.

References active_size, eps, G, celeste::QMatrix::get_Q(), INF, is_lower_bound(), is_upper_bound(), Q, QD, TAU, and y.

Referenced by Solve().

void celeste::Solver::Solve ( int  l,
const QMatrix Q,
const double *  p_,
const schar y_,
double *  alpha_,
double  Cp,
double  Cn,
double  eps,
SolutionInfo si,
int  shrinking 
)
void celeste::Solver::swap_index ( int  i,
int  j 
)
protected
void celeste::Solver::update_alpha_status ( int  i)
inlineprotected

Definition at line 477 of file svm.cpp.

References alpha, alpha_status, FREE, get_C(), LOWER_BOUND, and UPPER_BOUND.

Referenced by Solve().

Member Data Documentation

int* celeste::Solver::active_set
protected

Definition at line 468 of file svm.cpp.

Referenced by Solve(), and swap_index().

int celeste::Solver::active_size
protected
double* celeste::Solver::alpha
protected

Definition at line 462 of file svm.cpp.

Referenced by reconstruct_gradient(), Solve(), swap_index(), and update_alpha_status().

char* celeste::Solver::alpha_status
protected

Definition at line 461 of file svm.cpp.

Referenced by is_free(), is_lower_bound(), is_upper_bound(), Solve(), swap_index(), and update_alpha_status().

double celeste::Solver::Cn
protected

Definition at line 466 of file svm.cpp.

Referenced by get_C(), and Solve().

double celeste::Solver::Cp
protected

Definition at line 466 of file svm.cpp.

Referenced by get_C(), and Solve().

double celeste::Solver::eps
protected
double* celeste::Solver::G
protected
double* celeste::Solver::G_bar
protected

Definition at line 469 of file svm.cpp.

Referenced by reconstruct_gradient(), Solve(), and swap_index().

int celeste::Solver::l
protected
double* celeste::Solver::p
protected

Definition at line 467 of file svm.cpp.

Referenced by reconstruct_gradient(), Solve(), and swap_index().

const QMatrix* celeste::Solver::Q
protected
const double* celeste::Solver::QD
protected

Definition at line 464 of file svm.cpp.

Referenced by select_working_set(), celeste::Solver_NU::select_working_set(), and Solve().

bool celeste::Solver::unshrink
protected

Definition at line 471 of file svm.cpp.

Referenced by do_shrinking(), celeste::Solver_NU::do_shrinking(), and Solve().

schar* celeste::Solver::y
protected

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